Das folgende Bild zeigt die Hauptwerte, die bei der Berechnung der perspektivischen Projektionsmatrix in OpenGL verwendet wurden. Sie werden als "HALFFOV", "rechts" bezeichnet, "links", "NEAR" und "Nähe x 2":Warum ist die OpenGL-Projektionsmatrix unnötig kompliziert?
Nun, wie Sie im folgenden Bild sehen werden, die, um herauszufinden, x Wert nach der Projektion soll es 2 x NEAR dividiert durch RIGHT - LEFT. Die Tatsache ist, dass 2 x NEAR geteilt durch RECHTS - LINKS das gleiche ist wie einfach NAH/RECHTS. In beiden Fällen verdoppeln Sie einfach, verdoppeln das NEAR und verdoppeln das RECHTE, also ist der Bruch der selbe.
Auch in der dritten Spalte gibt es Operationen, bei denen Nullen vorkommen sollten, zum Beispiel: RECHTS + LINKS geteilt durch RECHTS - LINKS endet immer 0/RECHTS - LINKS, was immer Null ist.
Wenn die GLM-Mathematik-Bibliothek eine Matrix perspektivische Projektion macht für mich die beiden, die immer Null am Ende sind immer Null.
Warum ist die Matrix so geschrieben? Gibt es bestimmte Fälle, für die meine Annahmen falsch sind?
Ihre Annahme gilt nur für abs (rechts) == abs (links) (und abs (oben) == abs (unten)). Bei dezentralen Projektionen ist dies einfach nicht der Fall. – BDL
@ BDL Ich sehe. Nun, wenn LEFT als - RIGHT definiert ist und BOTTOM als TOP definiert ist, sind sie gleich. Ich bin mir nicht sicher, ob das Tutorial, mit dem ich gearbeitet habe, das falsch verstanden hat. Wo werden außerplanmäßige Projektionen in Grafiken oder Spielen verwendet? Werden sie für irgendwelche Effekte verwendet? – Zebrafish
Außermittige Projektionen sind sehr wichtig, wenn die Annahme, dass der Benutzer in die Mitte des Bildschirms schaut, nicht wahr ist. Beispiele hierfür sind CAVEs, Powerwalls, Virtual Reality-Headsets und Anaglyph-Rendering. Robert Kooima hat eine schöne Zusammenfassung: http: //csc.lsu.edu/~ kooima/articles/genperspective/ – skalarproduktraum