我已經看到了使用一些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管道的第一個屬性? (這是頂點着色器中的「位置」),它只是在第二個示例中執行代碼的一種較短的方式?