OpenGL:如何存储/渲染2D四边形?

时间:2015-07-09 19:30:11

标签: c++ opengl 3d vbo

我将我的模型数据存储在VBO / IBO中并使用VAO渲染它们,我理解它几乎就是它通常完成的方式。

但是我有为2D精灵和GUI生成的非模型四边形,它只包含4个顶点。这些四边形的位置很少相同(除非它是GUI的一部分),并且UV坐标也会改变每一帧。此外,任何时候屏幕都有大量,至少超过一千个。

我想知道,将单个四边形传输到GPU并渲染它们的最佳方法是什么?

为每个VBO分配感觉就像矫枉过正,并将它们聚集成一个新的VBO创建/销毁每一帧,同样看起来极端。但我能想到的唯一另一种方法是使用立即模式,这是我一直在避免的,因为它已经贬值了。

1 个答案:

答案 0 :(得分:1)

你绝对可以将所有四边形放入一个vbo中,并在需要时只绘制一个。每个矩形有一个vbo是不必要的过度杀伤。