我们绘制的金字塔是有五个面组成的,有6个三角形组成的,有4个顶点组成。我们在初始化顶点数据时,需要18个顶点组合,造成数据混乱,这就有了索引绘图。
我们设置顶点的坐标
GLfloat attributeArr[] = {
-0.5,-0.5,0.5, 1.0f, 0.0f, 1.0f, 0,0,
0.5,-0.5,0.5, 1.0f, 0.0f, 1.0f, 0,1,
0.5,-0.5,-0.5, 1.0f, 1.0f, 1.0f, 1.0,1.0,
-0.5,-0.5,-0.5, 1.0f, 1.0f, 1.0f, 1,0,
0.0,1.0,0.0, 0.0f, 1.0f, 0.0f, 0.5,0.5,
};
索引坐标
GLint indices[]= {
0,2,1,
0,3,2,
0,1,4,
1,2,4,
2,3,4,
3,0,4,
};
区别是我们一般
glDrawArrays(<#GLenum mode#>, <#GLint first#>, <#GLsizei count#>)
现在我们使用索引用下面函数
glDrawElements(GL_TRIANGLES, sizeof(indices) / sizeof(indices[0]), GL_UNSIGNED_INT, indices);