2017-02-06 4 views
1

Ich habe versucht, mehr über Matrizen in opengl zu lernen; Jetzt stehe ich fest und versuche zu verstehen, wo Dinge in der Modelview-Matrix gespeichert sind. (Lokalisierung, Skalierung, Rotationen usw.) Dies ist offensichtlich sehr wichtig, da das Verständnis der Matrizen einer der ersten Schritte ist, um das moderne OpenGL vollständig zu verstehen.Was ist in der Modelview-Matrix gespeichert?

Ich habe versucht, einige gute Artikel zu finden, und ich habe festgestellt, zur Zeit 2: (1, 2)

Aber ich stil nicht verstehen, wo die Werte gespeichert sind; jede Hilfe ist sehr geschätzt (Links, pinpointers usw.)

+3

Es gibt eine Fülle von Informationen in der Literatur und im Internet und darüber, wie Vertex-Transformation funktioniert. Eine (IMHO) gute Quelle ist [diese] (http://www.songho.ca/opengl/gl_transform.html). Es gibt auch einen allgemeineren Artikel über Transformationsmatrizen [hier] (https://en.wikipedia.org/wiki/Transformation_matrix). – thokra

+0

Entschuldigung; Ich habe diese Tags entfernt (da ich niemanden zitiert habe). Diese Quelle sieht interessant aus, ich werde mich darum kümmern. –

+0

Das hängt nicht mit C++ zusammen, sondern mit Schulmathematik. Nicht wirklich über Programmierung. – Olaf

Antwort

2

Hier ist ein Hinweis dafür, wie unterschiedlich (affine) Transformationsmatrizen aufgebaut sind:

Identität:

1 0 0 0 
0 1 0 0 
0 0 1 0 
0 0 0 1 

Übersetzen (x , y, z):

1 0 0 x 
0 1 0 y 
0 0 1 z 
0 0 0 1 

Maßstab (Sx, Sy, Sz):

sx 0 0 0 
0 sy 0 0 
0 0 sz 0 
0 0 0 1 

mitdrehen x-Achse (durch den Winkel t):

1 0  0  0 
0 cos(t) -sin(t) 0 
0 sin(t) cos(t) 0 
0 0  0  1 

mitdrehen y-Achse (durch den Winkel t):

cos(t) 0 sin(t) 0 
0  1 0  0 
-sin(t) 0 cos(t) 0 
0  0 0  1 

Drehen entlang der Z-Achse (nach Winkel t):

cos(t) -sin(t) 0 0 
sin(t) cos(t) 0 0 
0  0  1 0 
0  0  0 1 
Verwandte Themen