glVertexAttribPointer的最后一个参数是什么意思?

时间:2013-07-21 15:14:19

标签: opengl parameters

我开始学习OpenGL,但我不明白glVertexAttribPointer中的最后一个参数意味着什么。

1 个答案:

答案 0 :(得分:4)

它是指向您正在使用的数组的指针。但是,这是一个必须转换为指针的字节数,这不完全是直观的。

如果您使用的是交错属性,则它是从该属性的开头到第一个实例的字节数。

示例:

VVVNNNTTVVVNNTT

在Vertex位置数据的情况下,N是法线向量,T是纹理corodinate。

V的偏移是0(它在开头)

N的偏移量为(GLvoid*) (3*sizeof(vertex data type))

T的偏移量为(GLvoid*) (3*sizeof(vertex data type) + 3*sizeof(normal data type) )

此外,如果你有连续的属性,那么它也是每个属性的起点。

示例:

VVVV...VVVNNN...NNNTT...TT

V的偏移是0(它在开头)

N的偏移量为(GLvoid*) (3*sizeof(vertex data type)*number_of_vertices)

T的偏移量为(GLvoid*) (3*sizeof(vertex data type)*number_of_vertices + 3*sizeof(normal data type)*number_of_normals)