我开始学习OpenGL,但我不明白glVertexAttribPointer
中的最后一个参数意味着什么。
答案 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)