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

dag*_*und 1 opengl vertex-array vertex-attributes

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

dat*_*olf 5

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

没有.有充分理由:

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

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

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