如何在opengl中在一个vbo中绘制多个元素?
假设我有M个多边形,它们有一些形状和顶点顺序。如何在opengl中在一个vbo中绘制多个元素?,opengl,vbo,Opengl,Vbo,假设我有M个多边形,它们有一些形状和顶点顺序。 如果我为每个多边形创建一个vbo,那么我有M个vbo。 当我想画它们时,我必须在我的cpu上实现一个M循环。由于M太大,速度太慢。 所以我只想创建一个vbo来存储所有多边形的顶点。 但是,当我想使用GL_多边形绘制vbo时,opengl会将此vbo中的所有顶点视为一个多边形中的顶点。 因此,输出是多个多边形联合,这不例外。 所以我的问题是如何在一个vbo中分离多个多边形顶点。 我知道,如果我把每个多边形看作多重三角形,并将相应的顶点索引存储在ebo
如果我为每个多边形创建一个vbo,那么我有M个vbo。
当我想画它们时,我必须在我的cpu上实现一个M循环。由于M太大,速度太慢。
所以我只想创建一个vbo来存储所有多边形的顶点。 但是,当我想使用GL_多边形绘制vbo时,opengl会将此vbo中的所有顶点视为一个多边形中的顶点。
因此,输出是多个多边形联合,这不例外。
所以我的问题是如何在一个vbo中分离多个多边形顶点。
我知道,如果我把每个多边形看作多重三角形,并将相应的顶点索引存储在ebo中,这就是工作。 但是这种方法可能不适用于多条直线,而且三角测量需要花费时间。
但我认为应该有一个更合适的方法 将所有顶点存储在单个vbo中(如您在问题中所述)
然后,您可以使用
glMultiDrawArrays
(and)一次绘制所有网格数据。我不完全理解,您希望:a)将所有网格数据放在一个缓冲区中(可能和最佳做法)?b) 使用单个绘制调用绘制所有网格(位于单个缓冲区中),避免在其上循环?是的,我同时需要a和b。您可能需要签出