我已经看到了使用一些OpenGL的例子:清除glVertexAttribPointer的概念参数
glVertexAttribPointer(0, 3, GL_FLOAT, false, Vertex.SIZE * 4, 0);
当将数据传递到顶点着色器,和一些使用方法:
GLint posAttrib = glGetAttribLocation(shaderProgram, "position");
glVertexAttribPointer(posAttrib, 2, GL_FLOAT, GL_FALSE, 0, 0);
哪里position
是第一个由顶点着色器接收的属性(以及你可以说的管道本身的第一个属性,我猜)。
有什么区别?
这是一回事吗?
如果我在第一个例子中指定了0
,那么这是否意味着它会转到OpenGL管道的第一个属性? (这是顶点着色器中的“位置”),它只是在第二个示例中执行代码的一种较短的方式?