我读过很多次,将几何从三角形合并到三角形条带或三角形扇形可以提高 3D 渲染的性能,因为必须处理的顶点更少等等......在使用 VBO 和索引渲染的上下文中,所有这些考虑因素有多相关?
例如,我有一个由三角形组成的图元(球体)。我有 VBO,我只存储唯一的顶点,我有 VBO(绑定到 GL_ELEMENT_ARRAY_BUFFER),我存储索引以从顶点构造图元。所有渲染都是通过glDrawElementsInstanced()
. 在应用一些条带化技术并将我的基元渲染为 GL_TRIANGLE_STRIP 并启用基元重启后,我会获得任何性能提升吗?
文档说OpenGL管道在所有每个顶点操作之后和光栅化之前组装图元。我可以猜到,这意味着驱动程序首先为所有顶点调用顶点(几何等)着色器,然后才开始使用索引数组来获取三角形。如果这是真的,则条带化会减慢该过程,因为将应用对原始重启的额外检查。
我试图找到一些剥离器库,但我发现的所有东西看起来都在几年前被遗弃了。于是人们突然对这个领域失去了兴趣……
考虑到所有这些因素,没有必要进行条带化。我是正确的还是我错过了一些重要的事情?是否需要在现代硬件上进行剥离?