Registriert: Di Feb 13, 2018 19:02 Beiträge: 24
Programmiersprache: Java
Hallo,
ich beschäftige mich gerade mit OpenGL und Matrizen. Die Modelview-Matrix habe ich verstanden. Durch Transformationen (wie z.B. Verschiebung, Rotation, ...) wird eine Matrix erstellt. Multipliziert man diese Matrix später mit einem Vertex, so wird das Vertex transformiert bzw. im Raum verschoben.
Die ProjectionMatrix verstehe ich allerdings nicht. Ich kenne zwar die Formel um sie zu berechnen, aber die Bedeutung der Matrix ist mir nicht klar. Im Endeffekt müsste diese Matrix doch auch eine Verschiebung der Vertices bewirken, oder?
Registriert: Mi Aug 14, 2013 21:17 Beiträge: 588
Programmiersprache: C++
Die Projektionsmatrix beschreibt das Frustum der Kamera. Also die Information, innerhalb welcher horizontalen und vertikalen Winkel Objekte sichtbar sein können. Außerdem die minimale und maximale Entfernung von Objekten zur Kamera. Alles, was außerhalb dieser Werte liegt, wird geclippt, also nicht dargestellt.
Etwas mathematischer: Ein Vertex, der von einer Projektionsmatrix transformiert und danach durch seine w-Komponente geteilt wurde, dessen xyz-Koordinaten liegen allesamt im Intervall von -1.0 bis 1.0, wenn und nur wenn er innerhalb des Frustums liegt. Liegt der Vertex zu weit rechts, wird seine x-Koordinate > 1.0. Zu weit unten wird die y-Koodinate kleiner als -1.0 und so weiter. Die w Komponente ist nach der Division natürlich 1.0.
_________________ So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)
Mitglieder in diesem Forum: 0 Mitglieder und 13 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.