VAO 是顶点数组对象,VBO 是顶点缓冲区对象。创建和绑定/解除绑定 VAO 和 VBO 的调用具有如下一般格式:
GLuint VAO, VBO;
glGenVertexArrays(1, &VAO);
glBindVertexArray(VAO);
glGenBuffers(1, &VBO);
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER,
sizeof(GLfloat)* 9,
vertices,
GL_STATIC_DRAW);
glVertexAttribPointer(0,
3, GL_FLOAT, GL_FALSE,
0, 0);
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindVertexArray(0);
我在互联网上关注了一些教程,他们说 VBO 绑定到 VAO,但是在上面的代码中,我不明白 VBO 和 VAO 之间的“连接”或“绑定”是如何建立的? 我的意思是我们如何知道哪个 VBO 绑定到哪个 VAO 以及如果一个 VBO 绑定到多个 VAO 怎么办?
所以,基本问题是:VBO 绑定到 VAO 是什么意思,我们如何知道哪个 VBO 绑定到哪个 VAO 以及这个绑定是如何建立的?