Warum muss glLoadIdentity nach jedem Aufruf von glMatrixMode aufgerufen werden?

8

Ich lese gerade ein Buch über OpenGL, SDL und habe etwas über die OpenGL-Dokumentation gelesen. Ich habe auch diesen Beitrag gelesen: Was macht glLoadIdentity () in OpenGL?

Ich begreife was glLoadIdentity () tut und warum es in einem allgemeinen Sinn verwendet wird (um die aktuelle Matrix in ihren ursprünglichen Zustand zurückzuversetzen). Was ich nicht weiß ist, warum ich es in seinen ursprünglichen Zustand zurückversetzt habe. Zum Beispiel:

%Vor%

Ich bin mir nicht ganz sicher, warum glLoadIdentity () nach jedem Aufruf von glMatrixMode aufgerufen werden muss.

    
MintGrowth 04.08.2011, 23:49
quelle

1 Antwort

13

Wann glMatrixMode () aufgerufen wird - Die erste Antwort versucht zu erklären:

  

glLoadIdentity () wird normalerweise sofort nach einer Matrixmodusänderung aufgerufen, so dass Sie "frisch" starten, wenn Sie möchten. Matrixtransformationen wie gluPerspective (), glOrtho (), glFrustum (), glRotate (), glMultMatrix (), glTranslate () sind kumulative Operationen, da sie aggregieren, um komplexe 3D-Welt-Raumtransformationen zu beschreiben oder Ihre OpenGL-Darstellung zu beschreiben Volumen. Beispiel: Wenn ein Würfel in + X-Richtung übersetzt und dann um die Z-Achse gedreht werden soll, gebe ich glRotate () gefolgt von glTranslate () aus.

     

glLoadIdentity () löscht die Matrix (des aktuellen Matrixmodus) mit der Identitätsmatrix, so dass das Folgen einer gluPerspective () von glLoadIdentity () einem einzelnen Aufruf von glLoadIdentity () entspricht. Mit anderen Worten, diese Sequenz ist unsinnig.

    
hari 04.08.2011, 23:53
quelle

Tags und Links