【无标题】

一、函数

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 表示从缓冲区的开始处读取。

你可能感兴趣的:(算法)