0

我开始学习OpenGL,但我不明白最后一个参数是什么glVertexAttribPointer意思。

4

1 回答 1

4

这是您正在使用的数组的指针偏移量。但是,您必须将其转换为指针的字节数,这并不完全直观。

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

例子:

VVVNNNTTVVVNNTT

其中顶点位置数据,N是法线向量,T是纹理坐标。

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)

于 2013-07-21T15:19:20.673 回答