Computergrafik
Matrizen Spezielle Matrizen
← Matrizen Rechnen | ● | MatrizenBeispiele →
Entsprechende alte hier angegebene OpenGL-Befehle googlen, die man-Pages enthalten eine Menge nützlicher Informationen!
float skalar;
vec3 v3;
vec4 v4;
vec3 v3;
vec4 v4;
Transformationen / Modellierung
Die meisten Funktionen können nicht nur die Matrix erstellen, sondern multiplizieren diese an eine bereits bestehende Matrix (Standard-Anwendungsfall). Das kann ggf. schneller sein, und saubereren Code erzeugen.
- Translation:
Beispiel: Erstelle die Translationsmatrix um (1,2,3):mat4 m = mat4::translate (vec3 (1,2,3));
mat4 m = mat4::translate (1,2,3); // alternativ ohne Vektorm_left
mitmat4 m = m_left * mat4::translate (v3);
mat4 m = translate (m_left, v3); // alternative Schreibweise - Rotation:
Beispiel: Rotation um 90 Grad um die X-Achse:mat4 m = mat4::rotate (90, vec3 (1,0,0));m_left
mitmat4 m = m_left * mat4::rotate (winkel, v3);
mat4 m = rotate (m_left, winkel, v3); // alternativ
Siehe auch glRotate() - Skalierung:
Beispiel: Skalierung umd den Faktor 2:mat4 m = mat4::scale (2,2,2);m_left
mitmat4 m = m_left * mat4::scale (v3);
mat4 m = scale (m_left, v3); // alternativ
Siehe auch glScale()
View-Transformation
- Kamera-Transformation:
Erstellt eine View-Transformation (kein Multiplizieren an bereits bestehende Matrix!)
Siehe auch gluLookAt()mat4 view = mat4::lookat (vec3 eye, vec3 center, vec3 up);
Projektionen
- Frustum für eine orthographische Projektion (ohne perspektivische Verkürzung):
Siehe auch glOrtho()mat4 proj = mat4::ortho (l, r, b, t, n, f); - Frustum gemäß Projektionsmatrix:
Siehe auch glFrustum()mat4 proj = mat4::frustum (l, r, b, t, n, f); // not yet - Frustum entsprechend den alternativen Parametern (beschrieben in ViewKamera):
Siehe auch gluPerspective()mat4 proj = mat4::perspective (fovy, aspect, n, f);
Hilfsfunktionen / Daten
- Matrix-Ausgabe:
cout << m_res;
Die Matrix $\left( \begin{array}{cccc}0 & 4 & 8 & 12 \\1 & 5 & 9 & 13 \\2 & 6 & 10 & 14 \\3 & 7 & 11 & 15 \end{array} \right)$ wird (zeilenweise) so ausgegeben:((0, 4, 8, 12), (1, 5, 9, 13), (2, 6, 10, 14), (3, 7, 11, 15))
← Matrizen Rechnen | ● | MatrizenBeispiele →