CG1-01-15.pdf
CG1-01-15.pdf
CG1-01-15.pdf
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
44<br />
Vertex Arrays<br />
Vertex Array: effiziente Verwaltung von Vertex-Daten in mehrdimensionalen Feldern<br />
Prinzip: Prinzip: - 1. Möglichkeit: Organisation von von Parameterdaten unabhängig unabhängig von von OpenGL OpenGL<br />
und Nutzung dieser in OpenGL-Operationen<br />
- 2. Möglichkeit: Nutzung spezieller OpenGL-Operationen<br />
Operationen:<br />
Operationen:<br />
glEnableClientState(array) - Zulassen eines Arraytyps (GL_VERTEX_ARRAY;<br />
für VERTEX auch COLOR, INDEX, NORMAL, TEXTURE_COORD, EDGE_FLAG)<br />
glDisableClientState(array) - Nichtzulassen eines Arraytyps<br />
glVertexPointer(size,type,stride,pointer) l i i i i - DDefinition fi i i eines i Arrays A mit i Punkten P k<br />
glArrayElement(index) - Verwendung eines einzelnen Arrayelements<br />
glDrawArrays(mode,first,count) - Sequenz von Primitiven mit Arrayelementen<br />
glDrawElements(mode,count,type,pointer) g a e e ts( ode,cou t,type,po te ) - Sequenz Seque von vo Primitiven t ve mit t Indexliste de ste<br />
Glfloat Corners[];<br />
Glubyte y Indexes[]; []<br />
glEnableClientState(<br />
GL_VERTEX_ARRAY);<br />
glVertexPointer(3,GL_FLOAT,<br />
00,Corners); C )<br />
glDrawElements(GL_QUADS,24,<br />
GL_UNSIGNED_BYTE,Indexes);<br />
Beispiele:<br />
Glfloat *Data;<br />
glEnableClientState(GL glEnableClientState(GL_VERTEX_ARRAY);<br />
VERTEX ARRAY);<br />
glVertexPointer(3,GL_FLOAT,0,Data);<br />
glBegin(GL_TRIANGLES);<br />
for(i=0;i