OpenGL Vertex Arrays
← GL Primitive | ● | GL Triangle Strips →
Bisher: Spezifikation der Geometrie mittels glVertex()
- Jeder Vertex wird unmittelbar an die Hardware geschickt.
- Overhead für viele Vertices am Stück (Batches).
- Bus Traffic von CPU zu GPU
Ein Batch kann zu einem Array von Vertices (Vertex Array) zusammengefasst werden. Man spezifiziert einen Zeiger auf den Anfang eines Arrays von 3D Punkten (den Vertices).
glVertexPointer(3,GL_FLOAT,0,vertex_array);
glEnableClientState(GL_VERTEX_ARRAY);
Für jedes Attribut eines Vertex existiert ein Zeiger auf ein entsprechendes Array, z.B. für die Farbwerte:
glEnableClientState(GL_COLOR_ARRAY);
Weitere Arrays: GL_NORMAL_ARRAY, GL_TEXTURE_COORD_ARRAY, usw.
Zeichnen durch indizierte Angabe eines Vertex Strips:
index,count);
Dadurch werden die Vertices des Arrays mit den Indices index,..,index+count-1
gezeichnet.
← GL Primitive | ● | GL Triangle Strips →