Opengl 旋转顶点阵列、顶点缓冲区对象和着色器

Opengl 旋转顶点阵列、顶点缓冲区对象和着色器,opengl,vbo,vao,Opengl,Vbo,Vao,我对顶点数组、顶点缓冲区对象和着色器有基本的了解。但是,我不确定是否可以重用它们,或者关联是否是双射的 例如: 我可以在不同的顶点数组中使用相同的顶点缓冲区对象吗 我可以在不同的着色器中使用相同的顶点数组吗 是的,你可以:) VBO-控制数据的存储位置 VAO-控制布局和绑定(可以有多个VAO指向同一VBO,但顺序不同) 着色器-负责处理数据,它们可以与不同的VAO/VBO组合使用(但该组合当然必须与着色器中的属性布局匹配)是的,您可以:) VBO-控制数据的存储位置 VAO-控制布局和绑定(

我对顶点数组、顶点缓冲区对象和着色器有基本的了解。但是,我不确定是否可以重用它们,或者关联是否是双射的

例如:

  • 我可以在不同的顶点数组中使用相同的顶点缓冲区对象吗
  • 我可以在不同的着色器中使用相同的顶点数组吗
是的,你可以:)

VBO-控制数据的存储位置

VAO-控制布局和绑定(可以有多个VAO指向同一VBO,但顺序不同)

着色器-负责处理数据,它们可以与不同的VAO/VBO组合使用(但该组合当然必须与着色器中的属性布局匹配)

是的,您可以:)

VBO-控制数据的存储位置

VAO-控制布局和绑定(可以有多个VAO指向同一VBO,但顺序不同)


着色器-负责处理数据,它们可以与不同的VAO/VBO组合使用(但该组合必须与着色器中的属性布局匹配)

谢谢。因此,当我想将一个VAO与多个着色器一起使用时,我只需要确保属性位置相同?如何将VBO切换为VAO?只需在调用
glBindVertexArray
后调用
glBindBuffer
?这里有一个关于使用VAO的好教程:,但基本上您可以在绑定VAO后绑定新的VBO。谢谢。因此,当我想将一个VAO与多个着色器一起使用时,我只需要确保属性位置相同?如何将VBO切换为VAO?只需在调用
glBindVertexArray
后调用
glBindBuffer
?这里有一个关于使用VAO的好教程:,但基本上您可以在绑定VAO后绑定新的VBO。