opengl使用glDrawElements繪製圖形(IBO)
glDrawElements為Opengl圖元繪製函式
函式原型為:
void glDrawElements( GLenum mode, GLsizei count,
GLenum type, const GLvoid *indices);
其中:
mode指定繪製圖元的型別,它應該是下列值之一,GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON.
count為以mode型別連線的頂點的總數,且根據不同的mode,count小於或等於單個mode型別圖元的頂點數*圖元數
type為索引值的型別,只能是下列值之一:GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT。
indices:指向索引存貯位置的指標。
使用方法:
1 建立並繫結索引
GLuint IBO;
unsigned int Indices[] = { 0, 3, 1, 繪製點的索引 1, 3, 2, 2, 3, 0, 0, 1, 2 };
glGenBuffers(1, &IBO); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, IBO); glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(Indices), Indices, GL_STATIC_DRAW);
2 在glutDisplayFunc回撥函式中
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, IBO);
glDrawElements(GL_TRIANGLES, 12, GL_UNSIGNED_INT, 0); 呼叫繪製點的索引
原始碼位置:。。。/code/10.cpp