Computergrafik

OpenGL Indexed Face Sets

GL Vertex Array | | GL Backface Culling

Zwei Arrays

  • Vertex Liste (Geometrie)
  • Face Liste (Topologie)

Beispiel Pyramide mit 5 Eckpunkten (Basis $p_0,p_1,p_2,p_3$ und Spitze $p_4$)

Vertex Liste:

0: $x_0,y_0,z_0$
1: $x_1,y_1,z_1$
2: $x_2,y_2,z_2$
3: $x_3,y_3,z_3$
4: $x_4,y_4,z_4$

Face Liste:

0: 0,1,4
1: 1,2,4
2: 2,3,4
3: 3,0,4
4: 3,2,1,0

Vorteile:

  • Speicherplatzersparnis durch einfache Aufzählung jedes Punktes
  • Übliches Speicherformat für Dreicksgeometrien

OpenGL:

GLfloat vertex_list[]={-1,-1,0, 1,-1,0, 1,1,0, -1,1,0, 0,0,1};

glVertexPointer(3,GL_FLOAT,0,vertex_list);
glEnableClientState(GL_VERTEX_ARRAY);

GLushort face_list[]={0,1,4, 1,2,4, 2,3,4, 3,0,4, 3,2,1,0};

glDrawElements(GL_TRIANGLES,
   4*3,GL_UNSIGNED_SHORT,face_list);
glDrawElements(GL_QUADS,
   4,GL_UNSIGNED_SHORT,face_list+12);


GL Vertex Array | | GL Backface Culling

Options: