资讯详情

OpenGL常用函数参数解析

glVertexAttribPointer

   void glVertexAttribPointer( GLuint index,  GLint size,  GLenum type,  GLboolean normalized,  GLsizei stride,  const void * pointer); 
  • 第一个参数指定了我们想要配置的顶点属性。还记得我们在顶点着色器中使用它layout(location = 0)定义了position顶点属性的位置值(Location)是吗?它可以将顶点属性的位置值设置为0。因为我们想把数据传输到这个顶点属性,所以我们在这里传输到0。
  • 第二个参数指定顶点属性的大小。顶点属性是一个vec三、它由三个值组成,因此大小为3。
  • 第三个参数指定数据的类型,这里是GL_FLOAT(GLSL中vec*它们都由浮点值组成)。
  • 下一个参数定义了我们是否希望数据标准化(Normalize)。假如我们设置为GL_TRUE,所有数据都会映射到0(对于符号型)signed数据是-1)到1之间。我们把它设置为GL_FALSE。
  • 第五个参数叫步长(Stride),它告诉我们连续顶点属性组之间的间隔。因为下一组的位置数据是三个float之后,我们将步长设置为3 * sizeof(float)。需要注意的是,我们也可以将这个数组设置为0,因为我们知道这个数组排列紧密(两个顶点属性之间没有间隙)OpenGL确定步长是多少(只有当数值排列紧密时才能使用)。一旦我们有了更多的顶点属性,我们必须更仔细地定义每个顶点属性之间的间隔,我们以后会看到更多的例子(注: 这个参数意味着从这个属性第二次出现的地方到整个数组0位置之间有多少字节)。
  • 最后一个参数的类型是void*,因此,我们需要转换这种奇怪的强制类型。它表示缓冲中位置数据的偏移(Offset)。这里是0,因为位置数据在数组的开头。

标签: glw20液体流量传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台