Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 |
CMatrix4< T > & buildProjectionMatrixOrthoLH (f32 widthOfViewVolume, f32 heightOfViewVolume, f32 zNear, f32 zFar) //Builds a left-handed orthogonal projection matrix. CMatrix4< T > & buildProjectionMatrixOrthoRH (f32 widthOfViewVolume, f32 heightOfViewVolume, f32 zNear, f32 zFar) // Builds a right-handed orthogonal projection matrix. CMatrix4< T > & buildProjectionMatrixPerspectiveFovLH (f32 fieldOfViewRadians, f32 aspectRatio, f32 zNear, f32 zFar) // Builds a left-handed perspective projection matrix based on a field of view. CMatrix4< T > & buildProjectionMatrixPerspectiveFovRH (f32 fieldOfViewRadians, f32 aspectRatio, f32 zNear, f32 zFar) // Builds a right-handed perspective projection matrix based on a field of view. CMatrix4< T > & buildProjectionMatrixPerspectiveLH (f32 widthOfViewVolume, f32 heightOfViewVolume, f32 zNear, f32 zFar)// Builds a left-handed perspective projection matrix. CMatrix4< T > & buildProjectionMatrixPerspectiveRH (f32 widthOfViewVolume, f32 heightOfViewVolume, f32 zNear, f32 zFar) //Builds a right-handed perspective projection matrix. |
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »MasterHelmut« (21.06.2010, 16:12)
Edit 2: Hab mich grad mal was auf Wikipedia angelesen. Hab ich das jetzt richtig verstanden, dass die Projektionsmatrix einen 3-dimensionalen Vektor in einen 2-dimensionalen Vektor transformiert, der auf dem Bildschirm abgebildet werden kann? Wenn das so ist, dürfte ich ja im resultierenden Vektor die z-Koordinate garnicht verwenden.
Die orthogonale Projektion lässt also einfach die z-Koordinate weg? Ich kann mir garnicht vorstellen, dass man so überhaupt ein 3D-Objekt projezieren kann. Sinnvoller erscheint mir dann schon die Zentralprojektion.
Nun zur Praxis: Kann ich mich für eine Projektionsvariante entscheiden und die durchgehend in einem Spiel verwenden oder werde ich alle einmal brauchen?
Muss ich jetzt, nachdem ich die Transformation mit der Projektionsmatrix durchgeführt habe noch irgendwas dividieren??Es ist noch ein wenig komplizierter. Deine Projektionsmatrix bildet einen 4D Vektor auf einen 4D Vektor ab, die eigentliche Projektion passiert dann erst wenn man diesen 4D Vektor durch Division durch seine letzte Koordinate ("homogenisieren") zurück nach 3D projiziert.
Werbeanzeige