有一点3D基础应该是知道这么个事情,我们会在*.obj文件,即3D对象中放至少两个东西——顶点坐标和顶点索引,索引表明了坐标之间的顺序,这样可以省略一些重复的坐标。什么意思呢?比如我们有四个顶点:
四个点分别对应到0,1,2,3(因为索引是0开始的,当然也有1开始的,这里我们用0开始),在实际绘图的时候,一般会用很多的小三角形去近似一个图形,比如我们会使用B -> A -> C,A -> C -> D的方式去创造两个小三角形来拼出一个四边形:
注意我们的连线顺序,A和C是相交的位置,它们所关联的两个小三角形的边,方向是相同的。在之后会创造一些彩色的图形,这个顺序会保证两个小三角形相交的部分颜色相同。
好处很明显,我们使用了很少的坐标,外加一个索引,表达出了一个四边形。所以,OpenGL中自然也有这个玩意,它被叫做索引缓冲对象IBO(Index Buffer Object)。
创建IBO的方法和VBO类似,使用glGenBuffers(IBO_ID, &hIBO)创建。接着,我们需要使用glBindBuffer和glBufferData对它进行绑定,这一切都是在初始化内容里面完成的。在绘制的时候&#x