====== glBegin() ====== glBegin ist definiert im OpenGL zugehörigen [[Include]] des jeweiligen Betriebsystems. ===== Funktion ===== glBegin definiert den Beginn eines Vertex-Arrays((Block mit 3D-Koordinaten)), welche einen oder mehrere 3D Körper definieren. ===== Signatur ===== void glBegin( GLenum mode ); **mode**: Speicherblock (mindestens der Größe ''size'') \\ ^ mode ^ Bedeutung ^ mehrere Objekte erlaubt? ^ | GL_POINTS | Unabhängige Punkte | | | GL_LINES | Paare von Punkten, die 3D Liniensegmente darstellen | | | GL_LINE_STRIP | 3D Punkte, die zusammenhängende Liniensegmente darstellen | | | GL_LINE_LOOP | 3D Punkte, die zusammenhängende Liniensegmente darstellen und einen Loop bilden | | | GL_TRIANGLES | 3D Punkte, die als Dreierpaare Dreiecke beschreiben | | | GL_TRIANGLE_STRIP | 3D Punkte, die zusammenhängende Dreiecke beschreiben | | | GL_TRIANGLE_FAN | 3D Punkte, die zusammenhängende, gefächerte Dreiecke beschreiben | | | GL_QUADS | 3D Punkte, die unabhängige Vierecke beschreiben | | | GL_QUAD_STRIP | 3D Punkte, die zusammenhängende Vierecke beschreiben | | | GL_POLYGON | 3D Punkte, die ein konvexes Polygon beschreiben | | ===== Fehlerquellen ===== -- ===== Hinweise ===== ''GL_TRIANGLE_FAN'' eignet sich gut, um konkave Polygone ausgehend vom einem innenliegenden Punkt zu zeichnen. FIXME Grafik einfügen (auch für andere Beispiele) ===== Beispiel ===== void display( void ) { /* clear all pixels */ glClear( GL_COLOR_BUFFER_BIT ); /* Draw white polygon (rectangle) with corners at * (0.25, 0.25, 0) and (0.75, 0.75, 0.0) */ glColor3f( 1.0, 1.0, 1.0 ); glBegin( GL_POLYGON ); glVertex3f( 0.25, 0.25, 0.0 ); glVertex3f( 0.75, 0.25, 0.0 ); glVertex3f( 0.75, 0.75, 0.0 ); glVertex3f( 0.25, 0.75, 0.0 ); glEnd(); /* don't wait * start processing buffered OpenGL routines */ glFlush(); } ===== siehe auch ===== [[ogl:lib:start|OpenGL]]: [[ogl:lib:glEnd()]], [[ogl:lib:glVertex_()]]