2013-01-20 44 views
0

我对顶点数组,顶点缓冲区对象和着色器有基本的了解。但是,我不确定我是否可以重复使用它们,或者该协会是否是双面的。Swizzling顶点数组,顶点缓冲区对象和着色器

例如:

  • 我可以使用不同的顶点数组相同的顶点缓冲区对象?
  • 我可以在不同着色器中使用相同的顶点阵列吗?

回答

3

是的,你可以:)

VBO - 在您的数据存储控制

VAO - 控制布局和有约束力的(你可以有几个VAO指向相同的VBO,但在不同的顺序)

着色器 - 负责做的东西与数据,他们可以用于不同的VAO/VBO combinat离子(但是该组合必须与着色器中的属性布局匹配)

+0

谢谢。所以当我想用多个着色器使用一个VAO时,我只需要确保属性位置相同?如何切换VAO的VBO?只需在调用'glBindVertexArray'后调用'glBindBuffer'? – hanno

+0

这里是一个关于usao VAO的很好的教程:http://ogldev.atspace.co.uk/www/tutorial32/tutorial32.html,但基本上你可以在绑定VAO之后绑定新的VBO。 – fen