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