glBegin ist definiert im OpenGL zugehörigen Include des jeweiligen Betriebsystems.
glBegin definiert den Beginn eines Vertex-Arrays1), welche einen oder mehrere 3D Körper definieren.
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 | ✗ |
–
GL_TRIANGLE_FAN
eignet sich gut, um konkave Polygone ausgehend vom einem innenliegenden Punkt zu zeichnen.
Grafik einfügen (auch für andere Beispiele)
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(); }