如何在OpenGL中的一个VBO中绘制多个元素



假设我有一个具有某种形状和顶点顺序的M多边形。
如果我为每个多边形创建一个VBO,那么我就有M vbos。
当我想绘制它们时,我必须在CPU上实现M循环。由于m太大而太慢。
因此,我只想创建一个VBO来存储所有多边形的顶点。但是,当我想使用gl_polygon绘制VBO时,OpenGL将将此VBO中的所有顶点视为一个多边形的顶点。
因此,输出是多个多边形是联合的,这并不例外。
所以我的问题是我如何在一个VBO中分开多个多边形顶点。
我知道,如果我将每个多边形视为犬三角形,并将相应的顶点索引存储在EBO中。但是这种方法可能不适用于多行,三角剖分的时间成本。
但是我认为应该有一种更缝制的方法。

将所有顶点存储在单个VBO中(如您在问题中所述)。

然后,您可以使用glMultiDrawArrays(文档和进一步说明)一次绘制所有内容。

最新更新