有人可以解释一下VertexBuffer、VertexArray、VertexBufferObject和VertexArrayObject之间的区别吗?我甚至不确定这些是否都是指不同的东西,但我在OpenGL规范中看到了所有这些术语。
我知道一个VertexBuffer只包含顶点,一旦绑定,一旦我设置了顶点指针,我就可以使用DrawArrays来绘制它。我已经用这种方式做了很多次。
我正在使用我认为是一个VertexArray,它存储设置的任何顶点缓冲区的状态和任何顶点指针。绑定一个VertexArray会自动绑定顶点缓冲区并设置顶点指针。我也已经(大部分时间)成功地使用了它。
但VertexBufferObject和VertexArrayObject是什么?它们更好吗?VertexArray不是已经给了我所有我需要的东西吗?
我知道一个VertexBuffer只包含顶点,一旦绑定,一旦我设置了顶点指针,我就可以使用DrawArrays来绘制它。我已经用这种方式做了很多次。
我正在使用我认为是一个VertexArray,它存储设置的任何顶点缓冲区的状态和任何顶点指针。绑定一个VertexArray会自动绑定顶点缓冲区并设置顶点指针。我也已经(大部分时间)成功地使用了它。
但VertexBufferObject和VertexArrayObject是什么?它们更好吗?VertexArray不是已经给了我所有我需要的东西吗?
glEnableVertexAttribArray
将失败。但是可以像此答案中建议的那样引入一个“全局”VAO。 - bluenote10