OpenGL是条形图/风扇更快的渲染或只是数据带宽

当我们发送绘图数据时,我们可以将其标记为TRIANGLE_STRIP或TRIANGLE_FAN来减less我们必须指定的顶点数量。 现在,这是否真的提高了显卡的渲染速度,还是仅仅减less了发送到卡上的数据量呢?

我正在使用一个非常简单的模型。 为了正确构建,我需要使用TRIANGLE_STRIP对glDrawArrays进行多次调用。 如果我切换到只使用GL_TRIANGLES我可以只有一个调用glDrawArrays。 这种types的apporach是有用的,或者是一个调用glDrawArrays低的enouhg的开销,它不会有所作为。

我会介绍一下,但是因为我只有一张卡片,所以我不知道我的结果是否表示一般情况。 (注:我需要符合ES2,所以我的一些选项是有限的)。

一次调用glDrawElements与GL_TRIANGLES应该是在一般情况下最优 – 阅读http://home.comcast.net/~tom_forsyth/blog.wiki.html#Strippers – 条基本上已经过时,并已十年以上。

一般来说,你根本不应该使用glDraw 数组 。 如果您的模型具有重复的顶点,那么您会从索引列表中获得更多性能优势。 在那里,优化的条或甚至三角形将能够使用T&L顶点caching之前和之后。 这意味着更less的内存读取和更less的顶点着色器执行。

一)如果你的模型是简单的,那么你很可能根本就不需要优化(你在polycount,目标机器等方面有什么规格?)

B)如果模型中的顶点不变(例如:灯柱,风景,人物角色的顶点着色器将进行animation处理),请使用VBO

VBO:非常快速,因为您只需在“level-startup”发送顶点数据一次。