【问题标题】:What is the purpose of VAO in OpenGLOpenGL中VAO的目的是什么
【发布时间】:2014-08-09 14:52:13
【问题描述】:

我开始学习现代 OpenGL,正如标题所说,我只是想确定 VAO 在渲染管道中的用途。

在渲染时,我们使用 VBO 来存储数据,然后我们使用 OpenGL 函数,例如: glAttribe 告诉 GPU 我们将“以这种方式”使用这些数据,例如:前 3 个在顶点中浮动我们通过 vbo 实际上是位置,接下来的 3 个浮点数是颜色等......所以我读到我们需要一些 VAO 来存储顶点的描述,但那里的目标是什么?

提前致谢。

【问题讨论】:

标签: c++ opengl


【解决方案1】:

顶点数组对象存储一组缓冲区名称(通常是顶点和索引缓冲区)以从中获取顶点数据,以及顶点在顶点缓冲区中的布局方式。

它们的主要目的是,当你想从不同的缓冲区集渲染不同的模型时,而不是每次绑定每个缓冲区然后设置顶点属性格式,你只需绑定一个不同的 VAO,以及所有缓冲区并为您设置了属性。

这不仅对程序员更方便,而且减少了所需的 OpenGL 调用次数,从而减少了 CPU 使用率,从而消除了 CPU 瓶颈。

【讨论】:

  • 你的意思是,缓冲区索引?
  • @panicq 不,glGen* 返回的值称为名称。
  • 好的,但这只是一个 GLInt
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多