如何在opengl的一个vbo中绘制多个元素?

时间:2019-02-27 14:59:36

标签: opengl vbo

假设我有M个具有一定形状和顶点顺序的多边形。
如果我为每个多边形创建一个vbo,则我有M个vbo。
当我想绘制它们时,我必须在我的cpu上实现一个M循环。由于M太大,太慢了。
所以我只想创建一个vbo来存储所有多边形的顶点。 但是,当我想使用GL_POLYGON绘制vbo时,opengl会将该vbo中的所有顶点视为一个多边形中的顶点。
因此输出是并集了多个多边形,这是不排除的。
所以我的问题是,如何在一个vbo中分离多个多边形顶点。
我知道,如果将每个多边形视为多边三角形并将相应的顶点索引存储在ebo中是可行的。 但是此方法可能不适用于多条线,并且三角剖分会花费时间。
但我认为应该有一个更合适的方法。

1 个答案:

答案 0 :(得分:0)

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

然后,您可以使用glMultiDrawArraysdocumentationfurther explanation)一次绘制它们。