Verständnissfrage zu OpenGL
-
Wie ist es mit Begin() und End()?
Ist es das gleiche wie BeginScene() und EndScene() in DX
und was macht die Funktion glFlush()?
-
Ich glaube auf diese frage wird dir hier niemand antworten, denn so wie es aus sieht, hast du noch nicht gegoogelt, denn was diese befehle bedeuten steht praktisch in jedem tutorial!!
**
fürs nächste mal www.google.com
suchbegriffe: glBegin etc.**III.4.3.6 glBegin(Zeichnen)
In OpenGL werden Objekte immer durch die Angabe von Eckpunk-ten definiert. GlBegin markiert dabei den Start einer Eckpunktliste. Nach dem Aufruf von glBegin erwartet OpenGL Eckpunktangaben die mit dem Befehl glVertex erfolgen. Dabei werden die Eckpunkte nach dem angegebenen Mode verbunden. Die Liste wird anschlies-sen mit glEnd abgeschlossen.Syntax: glBegin(GLenum mode);
Mode Wirkung
GL_POINTS Es werden Punkte an den durch die Vertices spezifizierten Positionen gezeichnet.
GL_LINES Jeweils zwei aufeinanderfolgende Vertices beschreiben eine Linie.
GL_LINE_STRIP Die Punkte werden entsprechend ihrer Reihenfolge in Form eines Li-nienzuges verbunden.
GL_LINE_LOOP Die Punkte werden der Reihe nach verbunden, der Linienzug wird jedoch durch eine Verbindung vom letzten zum ersten Punkt geschlossen.
GL_POLYGON Die Punkte beschreiben eine Fläche, die gefüllt ist.
GL_QUADS Jeweils vier aufeinanderfolgende Punkte bilden ein Viereck.
GL_QUAD_STRIP Die Vertices bilden einen Streifen aus aneinandergrenzenden Vierecken, wobei ein neues Viereck aus einem alten Viereck und zwei neuen Punk-ten generiert wird.
GL_TRIANGLES Jeweils drei aufeinanderfolgende Punkte bilden ein Dreieck.
GL_TRIANGLES_STRIP Die Vertices bilden einen Streifen aus Dreiecken, wobei ein neues Drei-eck aus dem vorhergehenden und einem Punkt generiert wird.
GL_TRIANGLE_FAN Die Punkte spannen einen Fächer auf, der erste Vertex bildet das Zent-rum.Abbildung 1 Die Verschiedenen Modes von glBegin
Ergänzung: Zwischen glBegin() und glEnd() können nur fol-gende Kommandos stehen:
· glVertex*()
· glColor*()
· glIndex*()
· glNormal*()
· glEvalCoord*()
· glCallList(), glCallLists()
· glTexCoord*()
· glEdgeFlag*()
· glMaterial*()Beachten: Einschränkung bezieht sich nur auf GL-Befehle!
Andere Sprachkonstrukte können ohne weiteres zwischen glBegin() und glEnd() stehen.Beispiel: glBegin(GL_LINES);
glVertex3f(1.0,1.0,0);
glVertex3f(1.0,-1.0,0);
glEnd();
Eine Linie wird definiert.III.4.3.14 glEnd(Zeichnen)
In OpenGL werden Objekte immer durch die Angabe von Eckpunk-ten definiert. GlBegin markiert dabei den Start einer Eckpunktliste. Nach dem Aufruf von glBegin erwartet OpenGL Eckpunktangaben die mit dem Befehl glVertex erfolgen. Dabei werden die Eckpunkte nach dem angegebenen Mode verbunden. Die Liste wird anschlies-sen mit glEnd abgeschlossen. Ausführlichere Angaben, siehe glBe-gin!Syntax: glEnd(void);
Beispiel: glBegin(GL_LINES);
glVertex3f(1.0,1.0,0);
glVertex3f(1.0,-1.0,0);
glEnd();
-
**BEFEHLSSAMMLUNG von OPENGL http://www.cevis.uni-bremen.de/~uwe/opengl/opengl.html
**[ Dieser Beitrag wurde am 10.03.2003 um 16:45 Uhr von Niels editiert. ]
-
Ich habe mich falsch ausgedrückt. Es geht mir mehr um die Technik. Bei DirectX werden die Zeichenoperationen zwischen BeginScene() und EndScene() ausgeführt.
Ändert man etas am Device z.B. Z-Buffer oder Transparenz muss für dieses Objekt noch einmal BeginScene() und EndScene() aufgerufen werden.
Wie ist es in OpenGL. Was macht man wenn die Transparents oder der Z-Buffer abgeschaltet wird. Muss man etwas wie in DX beachten.
Kennt sich einer mit beiden API's aus?