如何将值传递给OpenGL中的顶点着色器的属性数组?

时间:2017-07-06 18:43:18

标签: opengl glsl

在我的顶点着色器中,我有

in float data[6];

这意味着如果我有100个顶点,我想传递600个浮点数。 glVertexAttribPointer仅支持最大为4的大小。如果我使用大小1,那么它会自动获取6个元素吗?

1 个答案:

答案 0 :(得分:5)

glsl中的属性数组被视为具有连续属性位置的多个独立属性。你必须分别为每个它们设置顶点属性指针。

如果您使用idx = glGetAttribLocation(program_index, "data")查询第一个元素的位置,则data[1]将具有位置idx + 1。然后,您可以循环遍历它们并使用索引和每个数组元素的正确字节偏移量调用glVertexAttribPointer*