一、函数
1、glVertexAttribPointer
功能:
定义顶点属性数组的数据格式和布局,告诉 OpenGL 如何从当前绑定的顶点缓冲对象(VBO)中读取顶点数据并将其传递给顶点着色器。
函数原型:
void glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized,
GLsizei stride, const GLvoid * pointer);
函数参数:
- index:指定要配置的顶点属性的索引。这个索引通常与顶点着色器中 layout (location = index) 的 index 相匹配,用于将 VBO 中的数据与顶点着色器中的属性关联起来。
- size:指定每个顶点属性的元素数量。例如,对于 vec3 类型的顶点位置,size 为 3;对于 vec2 类型的纹理坐标,size 为 2。
- type:指定数据的类型,常见的有 GL_FLOAT、GL_UNSIGNED_BYTE、GL_INT 等。
- normalized:指定是否将数据归一化。对于 GL_FLOAT 类型,通常设置为 GL_FALSE;对于 GL_UNSIGNED_BYTE 或 GL_SHORT 等类型,根据需要可能设置为 GL_TRUE 进行归一化处理。
- stride:表示连续的顶点属性组之间的间隔,以字节为单位。如果顶点数据是紧密排列的,stride 可以是 0 或 sizeof(vertex_data)。如果顶点数据中包含多个属性,stride 是整个顶点数据结构的字节大小。
- pointer:表示顶点属性数据在缓冲区内的偏移量,以字节为单位。通常使用 (void*)0 表示从缓冲区的开始处读取。
7536

被折叠的 条评论
为什么被折叠?



