OpenGL:二维四边形应该如何 stored/rendered?
OpenGL: How should 2D quads be stored/rendered?
我将我的模型数据存储在 VBO/IBOs 中并使用 VAO 渲染它们,据我所知,这几乎是通常的做法。
但我有为 2D 精灵和 GUI 生成的非模型四边形,它们仅包含 4 个顶点。这些四边形的位置很少相同(除非它是 GUI 的一部分),并且 UV 坐标也在每一帧中改变。另外,屏幕上任何时候的数量都很大,至少有一千多
我想知道,将单个四边形传输到 GPU 并渲染它们的最佳方式是什么?
给每个 VBO 分配感觉有点矫枉过正,并且每帧将它们聚集成一个新的 VBO created/destroyed,同样看起来很极端。但我唯一能想到的其他方法是使用立即模式,我一直避免使用它,因为它已经过时了。
您绝对可以将所有四边形放入一个 vbo 中,并在需要时只绘制一个。每个矩形有一个 vbo 是不必要的矫枉过正。
我将我的模型数据存储在 VBO/IBOs 中并使用 VAO 渲染它们,据我所知,这几乎是通常的做法。
但我有为 2D 精灵和 GUI 生成的非模型四边形,它们仅包含 4 个顶点。这些四边形的位置很少相同(除非它是 GUI 的一部分),并且 UV 坐标也在每一帧中改变。另外,屏幕上任何时候的数量都很大,至少有一千多
我想知道,将单个四边形传输到 GPU 并渲染它们的最佳方式是什么?
给每个 VBO 分配感觉有点矫枉过正,并且每帧将它们聚集成一个新的 VBO created/destroyed,同样看起来很极端。但我唯一能想到的其他方法是使用立即模式,我一直避免使用它,因为它已经过时了。
您绝对可以将所有四边形放入一个 vbo 中,并在需要时只绘制一个。每个矩形有一个 vbo 是不必要的矫枉过正。