glVertexAttribPointer - 顶点法线或颜色

时间:2014-06-24 06:37:33

标签: c++ opengl

当我使用glVertexAttribPointer时,OpenGL如何知道我是指顶点,正常还是颜色?这是我的代码:

glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(float), 0);

在那个例子中,我指的是顶点。购买OpenGL如何知道它?如果我想为我的形状添加正常,我如何告诉OpenGL这是正常的?

1 个答案:

答案 0 :(得分:4)

它没有。

通过着色器中的内联位置属性或通过与glBindAttribLocation的绑定指定GL,该位置将与输入着色器属性一起使用。

着色器中的位置语法(layout qualifier):

layout(location = attribute index) in vec3 position;

编辑添加:我应该提一下,如果您没有指定位置,GL会自行选择,然后您必须通过glGetAttribLocation询问它使用的位置。