如何在glDrawElements中处理索引数据?

时间:2012-06-21 21:39:19

标签: opengl vertex-array vertex-attributes

我知道当调用glDrawElements时,它使用索引缓冲区来确定以什么顺序绘制的顶点。我的问题是这些索引如何应用于纹理,法线和颜色属性。是否可以设置另一个索引数组,以确定每个顶点应使用哪个纹理坐标和法线。或者我是否必须创建法线和纹理坐标缓冲区,以便它们与正在绘制的顶点对齐?

1 个答案:

答案 0 :(得分:5)

  

是否可以设置另一个索引数组,以确定每个顶点应使用哪个纹理坐标和法线。

没有。有充分理由:

  

或者我是否必须创建法线和纹理坐标缓冲区,以便它们与正在绘制的顶点对齐?

不要尝试将顶点,法线,纹理坐标等视为分配给顶点(-position)的不同矢量。顶点实际上是一个复合向量,它涵盖了所有这些属性。旧术语源于固定功能管道。现代OpenGL只知道通用顶点属性。

因此每个索引都指向一个特定的顶点向量。如果任何属性存在差异,那么它是一个不同的顶点,因此将被赋予不同的索引。