'glPushMatrix' und 'glPopMatrix' was bringt das?
-
naja, mir scheint es, dass wenn man garnicht weiss was die funktionen machen wenn man
Ich meine, man kann sie doch genau so gut weglassen und das Programm läuft immer noch.
sagt.
Und der erste Schritt zum Sinn-Verstehen, ist nunmal zu wissen was die Funktionen ueberhaupt machen.
Vielleicht weiss Lukas auch noch nicht was ein Stack ist.
-
@all: ich weiß schon dass die Funktionen die Matrix auf den Stack legen und wieder runter nehmen. Aber meine Hauptfrage war eigentlich ob diese Funktionen das Programm schneller machen. Denn wenn ich diese Funktionen in den Tutorials weg lasse scheint das Programm immer noch so zu laufen wie vorher daher hat es mich interessiert was diese Funktionen für einen tieferen Sinn haben und an welchen Stellen man sie optimal einsetzten kann/ sollte/ muss.
@rapso: wenn du schon einen Beitrag schreibst würde ich mich über hilfreichere sehr freuen
Was ein 'Stack' oder 'Heap' ist weiß jawohl jedes (Computer-)Kind.
-
also ma im ernst...
Wie soll denn eine Funktion ein programm schneller machen? Die schnellste Funktion ist die, die nciht aufgerufen wird, hm? Die Funktionen packen übrigens nicht die matrix auf den Stack, sondern die zuvor mit glMatrixMode bestimmte Matrix auf den passenden Matrix-Stack, nicht den normalen Stack.
Der Sinn dieser funktionen ist es eben, eine Matrix für den späteren Gebrauch zu speichern. Wie zB bei dynamischen animationen, wo man die aktuelle matrix mit der lokalen matrix des zu animierenden teis lmultipliziert, das zeichnet und später aber wieder die alte matrix braucht.
Ist sehr praktisch das ding
-
daher hat es mich interessiert was diese Funktionen für einen tieferen Sinn haben und an welchen Stellen man sie optimal einsetzten kann/ sollte/ muss.
Was ein 'Stack' oder 'Heap' ist weiß jawohl jedes (Computer-)Kind.
Mit anderen Worten du bist kein "(Computer-)Kind". Das hört sich zwar erstmal gut an aber ...
Wenn man weiß was ein Stack ist weiß man auch was man damit anstellen kann. Ganz einfach.
@rapso: wenn du schon einen Beitrag schreibst würde ich mich über hilfreichere sehr freuen

Ab hier würde ich mir überlegen überhaupt jemals wieder was in dem Thread schreiben.
-
LukasBanana schrieb:
@all: ich weiß schon dass die Funktionen die Matrix auf den Stack legen und wieder runter nehmen.
dann weisst du auch, dass das einen sinn hat und nicht einfach weggelassen werden kann, wozu wuerde man es sonst einbauen?
Aber meine Hauptfrage war eigentlich ob diese Funktionen das Programm schneller machen.
nein, machen sie nicht, sie bedeuten extra arbeit fuer das programm.
Denn wenn ich diese Funktionen in den Tutorials weg lasse scheint das Programm immer noch so zu laufen wie vorher daher hat es mich interessiert was diese Funktionen für einen tieferen Sinn haben und an welchen Stellen man sie optimal einsetzten kann/ sollte/ muss.
der Tiefe sinn ist, dass man damit
die Matrix auf den Stack legen und wieder runter nehmen.
kann. Ohne diese funktion, wenn sie sinnvoll eingesetzt wurde, kann ein programm nicht richtig laufen.
@rapso: wenn du schon einen Beitrag schreibst würde ich mich über hilfreichere sehr freuen
Was ein 'Stack' oder 'Heap' ist weiß jawohl jedes (Computer-)Kind.Aber jedes (Computer-)Kid weiss dann auch, dass man solche funktionen nicht einfach weglassen kann. Ich verstehe nicht, wie du wissen kannst was diese funktionen machen und dann trotzdem fragst, welchen (tiefen) sinn/bedeutung diese funktionen haben.
deswegen ist es schwer zu antworten, sorry.
-
@rapso:
Also gut, mit: "ich weiß was sie machen" meinte ich, dass ich weiß, dass die Funktionen die Matrix auf den Stack legen und wieder herunter nehmen.
Was ich wissen wollte (was ich nämlich nicht weiß) ist wozu das gut sein soll.@all:
Ich hatte mir einige NeHe Tutorials angesehen, z.B. "reflection" (mit dem StencilBuffer etc.) und auch in diesem Tut. tauchten diese Funktione auf. Aber mein Programm läuft, auch wenn ich sie weg lasse, fehler frei. Ich hatte anfangs geglaubt dass das möglicher Weise mit dem Speicher so umgeht dass man noch mehr Geschwindigkeit rausholen kann, aber das ist jawohl jetzt schon beantwortet.Warum aber meinen einige dass das nicht weggelassen werden kann? Mein Programm läuft auch so recht passabel.
illuminator schrieb:
Mit anderen Worten du bist kein "(Computer-)Kind". Das hört sich zwar erstmal gut an aber ...
hm, du anscheinend auch nicht

-
es kommt natürlich auf das programm an, ob man push/popmatrix braucht. Ich kenn das nehe-tut ejtzt ncih ausm kopp. Aber wenns da drin steht, hat das sicherlich auch irgendwo einen sinn.
Aber wie gesagt: ein solcher funktionsaufruf muss nicht zwingend irgendwo stehen, amit ein programm funktioniert. Aber ich glaub nciht, dass alles noch vollkommen richtig funzt, wenn man die einfach aus dem code rausnimmt ...
-
In Ordnung, danke an alle

-
LukasBanana schrieb:
@rapso:
Also gut, mit: "ich weiß was sie machen" meinte ich, dass ich weiß, dass die Funktionen die Matrix auf den Stack legen und wieder herunter nehmen.
Was ich wissen wollte (was ich nämlich nicht weiß) ist wozu das gut sein soll.man legt etwas auf einem stack ab, damit man es spaeter wieder von dort holen kann um es weiter zu verwenden.
bei den matrizen von opengl kannst du damit eine transformation sichern. danach kannst du wie in dem tutorial wohl beschrieben, irgendwelche schattenmatrizen oder reflektionsmatrizen drauflegen und wenn du damit fertig bist, holst du die vorherige matrix vom stack und kannst damit arbeiten als waere nichts.
-
LukasBanana schrieb:
Was ein 'Stack' oder 'Heap' ist weiß jawohl jedes (Computer-)Kind.
Echt? Ich glaube, wenn man heutzutage Otto-Normal-Computerkind fragt was ein Heap ist, wird es kaum sowas wie "ein partiell geordneter Baum" sagen.