Andreas95 - Mi 19.01.11 22:45
Titel: glPushMatrix/glpopmatrix (hilfe beim opengl tutorial)
Ich bin im moment bei der Lektion 3 der opengl tutorials angelangt, und alles funktioniert einwandfrei, aber jetzt bin ich zum
http://wiki.delphigl.com/index.php/Tutorial_Lektion_3#Vom_Pushen_und_Poppen glpushmatrix angelangt.
1.Ich verstehe im Grunde einfach nicht was es bewirken soll. Kann man so einzelne objekte ihre eigene anweisungen geben?
oder was bringt es und wie benutzt man es genau?
tut mir leid für die unklare fragestellung, aber ich bin (wieder mal) am verzweifeln.
Tilman - Mi 19.01.11 23:03
In aller Kürze: es gibt einen "Matrixstack". Ein Stack ist ein Speicher nach dem LIFO-Prinzip: last in, first out. Das heißt wenn ich Kuh, Pferd und Hund in den Speicher "pushe", und dann "pop" ausführe, bekomme ich Hund. "Poppe" ich dann nochmal, erhalte ich Pferd und so weiter. Der zuletzt auf den Stapel gelegte Wert kommt also als erstes wieder heraus.
Und in OpenGL ist der Sinn dahinter einfach, dass man den Zustand der Matrix (Translate, Rotate, Scale) auf den Stack schreibt, um ihn später weiter verwenden zu können. In dem von dir verlinkten Codebeispiel ersetzt das Pop die Befehle
Delphi-Quelltext
1: 2:
| glLoadIdentity(); glTranslatef(0,0,-10); |
, die man normalerweise zweimal schreiben müsste. Durch Push und Pop bleibt die Matrix gespeichert, und kann erneut verwendet werden.