当我使用glVertexAttribPointer时,OpenGL如何知道我是指顶点,正常还是颜色?这是我的代码:
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 6 * sizeof(float), 0);
在那个例子中,我指的是顶点。购买OpenGL如何知道它?如果我想为我的形状添加正常,我如何告诉OpenGL这是正常的?
答案 0 :(得分:4)
它没有。
您通过着色器中的内联位置属性或通过与glBindAttribLocation的绑定指定GL,该位置将与输入着色器属性一起使用。
着色器中的位置语法(layout qualifier):
layout(location = attribute index) in vec3 position;
编辑添加:我应该提一下,如果您没有指定位置,GL会自行选择,然后您必须通过glGetAttribLocation询问它使用的位置。