我开始学习现代OpenGL,正如标题所说,我只是想确定VAO在渲染管道中的用途。
渲染时我们使用VBO存储数据,然后我们使用OpenGL函数如:glAttribe向GPU说我们将“以那种方式”使用这个数据,如:顶点中的前3个浮点数我们通过vbo实际上是位置,接下来的3个浮点数是颜色等等......那么我知道我们需要一些存储顶点描述的VAO但是那里的目标是什么?
提前致谢。
答案 0 :(得分:4)
顶点数组对象存储一组缓冲区名称(通常是顶点和索引缓冲区)以获取顶点数据,以及如何在顶点缓冲区中布置顶点。
它们的主要目的是,当您想要从不同的缓冲区集渲染不同的模型时,不是绑定每个缓冲区,然后每次都设置顶点属性格式,您只需绑定不同的VAO和所有缓冲区和属性是为你设置的。
这不仅对程序员来说更方便,它减少了所需的OpenGL调用次数,从而减少了CPU使用率,从而消除了CPU瓶颈。