Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opengl glVertexAttributePointer的最后一个参数是什么意思?_Opengl_Parameters - Fatal编程技术网

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

Opengl glVertexAttributePointer的最后一个参数是什么意思?,opengl,parameters,Opengl,Parameters,我开始学习OpenGL,但我不明白glvertexattributepointer中的最后一个参数是什么意思。它是指向正在使用的数组的指针偏移量。然而,您必须将字节计数转换为指针,这并不完全直观 如果使用的是交错属性,则是从该属性的开始到第一个实例的字节数 例如: VVVNNNTTVVVNNTT VVVV...VVVNNN...NNNTT...TT 其中,顶点位置数据,N是法向量,T是纹理坐标 V的偏移量为0(位于开头) N的偏移量是(GLvoid*)(3*sizeof(顶点数据类型)) T

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

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

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

例如:

VVVNNNTTVVVNNTT
VVVV...VVVNNN...NNNTT...TT
其中,顶点位置数据,N是法向量,T是纹理坐标

V的偏移量为
0
(位于开头)

N的偏移量是
(GLvoid*)(3*sizeof(顶点数据类型))

T的偏移量是
(GLvoid*)(3*sizeof(顶点数据类型)+3*sizeof(正常数据类型))

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

例如:

VVVNNNTTVVVNNTT
VVVV...VVVNNN...NNNTT...TT
V的偏移量为
0
(位于开头)

N的偏移量为
(GLvoid*)(3*sizeof(顶点数据类型)*顶点数)


T的偏移量为
(GLvoid*)(3*sizeof(顶点数据类型)*顶点数+3*sizeof(法线数据类型)*法线数)

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

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

例如:

VVVNNNTTVVVNNTT
VVVV...VVVNNN...NNNTT...TT
其中,顶点位置数据,N是法向量,T是纹理坐标

V的偏移量为
0
(位于开头)

N的偏移量是
(GLvoid*)(3*sizeof(顶点数据类型))

T的偏移量是
(GLvoid*)(3*sizeof(顶点数据类型)+3*sizeof(正常数据类型))

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

例如:

VVVNNNTTVVVNNTT
VVVV...VVVNNN...NNNTT...TT
V的偏移量为
0
(位于开头)

N的偏移量为
(GLvoid*)(3*sizeof(顶点数据类型)*顶点数)

T的偏移量为
(GLvoid*)(3*sizeof(顶点数据类型)*顶点数+3*sizeof(法线数据类型)*法线数)