glEnableVertexAttribArray究竟做了什么?

时间:2011-08-09 17:12:06

标签: opengl

我一直在读:

http://alfonse.bitbucket.io/oldtut/Basics/Tut01%20Dissecting%20Display.html

我不太清楚这个功能是做什么的 我认为它可以使用给定的VBO,但我不确定。

我认为这就是glEnableClientState(GL_VERTEX_ARRAY)所做的。

3 个答案:

答案 0 :(得分:30)

  

我一直在阅读:http://alfonse.bitbucket.io/oldtut/Basics/Tut01%20Dissecting%20Display.html

然后请阅读 next 页面;我准确地解释它在那里做了什么;)

如果我可以引用自己:

  

我们在顶点着色器中将position属性的属性索引指定为0,因此对glEnableVertexAttribArray(0)的调用将启用position属性的属性索引。 ...如果未启用该属性,则在渲染过程中不会使用该属性。

答案 1 :(得分:4)

它类似于顶点数组,但为每个点而不是它的坐标存储额外的额外值。例如,您可能希望在建模应用程序中的每个点存储温度,密度,信号强度,或者可能是游戏的损坏值

答案 2 :(得分:2)

聚会晚一点。

还有另一种为顶点属性指定数据的方法,即非数组方法:

https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glVertexAttrib.xml

这样,我们只为一个顶点指定数据,该数据将为所有顶点复制。

要使用非数组数据,请致电glDisableVertexAttribArray

要使用数组数据,请致电glEnableVertexAttribArray