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