如何在一个顶点数组对象中拥有多个存储布局?

时间:2016-05-28 16:19:37

标签: opengl vertex-buffer vertex-array vertex-attributes vertex-array-object

当我说存储布局时,我指的是我用glVertexAttribPointer定义的内容。此状态是保存在当前绑定的VAO还是绑定到GL_ARRAY_BUFFER的缓冲区?

2 个答案:

答案 0 :(得分:1)

您无法拥有多个存储布局"在一个VAO中。这与您在一个纹理对象中不能有多个纹理的原因相同。或者一个缓冲区对象中有多个缓冲区等等。

VAO "存储布局"。因此,如果您需要多个布局,则需要多个VAO。

或者您可以修改现有的VAO状态;他们不是一成不变的。但这有点挫败了VAO的目的。

答案 1 :(得分:0)

您给glVertexAttribPointer的“描述”存储在VAO状态。

因此,对于相同的VBO,您可以在同一个VAO中的不同属性中或在其他VAO中以不同的方式设置它。