一、OpenGL常用函数
1、glVertexAttribPointer()函数
作用:
告诉 OpenGL 如何解析顶点缓冲区对象(VBO)中存储的顶点数据。
函数原型:
void glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized,
GLsizei stride, const GLvoid * pointer);
参数解析:
各参数的含义如下:
- index:指定要配置的顶点属性的索引。在 OpenGL 着色器程序中,每个顶点属性都有一个唯一的索引,用于标识该属性。例如,顶点的位置属性可能索引为 0,颜色属性可能索引为 1。
- size:表示每个顶点属性由多少个组件组成。例如,顶点的位置通常是三维坐标(x, y, z),所以 size 为 3;如果是二维纹理坐标(s, t),则 size 为 2。
- type:指定顶点属性中每个组件的数据类型,常见的取值有 GL_FLOAT(浮点数)、GL_INT(整数)等。
- normalized:一个布尔值,指示当数据类型不是浮点数时,是否需要对数据进行归一化处理。如果设置为 GL_TRUE,则会将数据归一化到 [0, 1](无符号数据)或 [-1, 1](有符号数据)的范围内;如果设置为 GL_FALSE,则数据会直接使用,不进行归一化。
- stride:表示相邻两个顶点属性之间的字节偏移量,即从一个顶点的某个属性到下一个顶点的相同属性之间的距离。如果顶点数据是紧密排列的,没有额外的填充字节,stride 可以设置为 size * sizeof(type);如果顶点数据中包含多种属性,stride 则需要根据实际情况计算。
- pointer:表示当前顶点属性在 VBO 中的起始偏移量,通常是一个指向 VBO 中数据起始位置的指针。如果该属性是 VBO 中第一个属性,pointer 可以设置为 (GLvoid*)0。
工作原理:
1684

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



