Autor Beitrag
Andreas95
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 36



BeitragVerfasst: Mi 19.01.11 22:45 
Ich bin im moment bei der Lektion 3 der opengl tutorials angelangt, und alles funktioniert einwandfrei, aber jetzt bin ich zum wiki.delphigl.com/in...om_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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1405
Erhaltene Danke: 51

Win 7, Android
Turbo Delphi, Eclipse
BeitragVerfasst: 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
ausblenden 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.

_________________
Bringe einen Menschen zum grübeln, dann kannst du heimlich seinen Reis essen.
(Koreanisches Sprichwort)