TriangleList与TriangleStrip

Jos*_*and 10 opengl

在TriangleStrip和TriangleList之间,哪一个表现得更快?

我刚读过的一些有趣的东西说:"我使用三角形列表的方法大约有780fps,而带有三角形条带的方法只有70fps".我没有详细说明他到底在做什么,但根据这一点,他使用TriangleList获得了大约10倍的帧速率.我觉得这个反直觉,因为列表包含更多的顶点数据.

有没有人知道为什么TriangleList可能比Strip更快的技术原因?

Coi*_*oin 9

三角条是内存优化,而不是速度优化.在过去的某个时刻,当系统内存和视频内存之间的总线带宽是数据密集型应用程序的主要瓶颈时,那么它也可以节省时间,但这种情况很少发生.此外,旧硬件中的转换缓存非常小,因此普通条带的缓存效果优于错误优化的索引列表.

三角形列表可以比三角形条带等效或更高效的原因是索引.如果您正确地优化几何和三角形顺序,则指数允许硬件以非常可见的方式转换和缓存顶点.此外,在需要大量退化三角形的非常复杂的网格中,条带将比索引列表更慢并且占用更多内存.

我必须说,我有点惊讶你的例子显示了一个数量级的差异.

  • 没有理由它应该快10倍.我认为他做错了什么. (2认同)

小智 6

三角形列表可以比条带快得多,因为它可以通过轻松地将顶点数据批处理来节省绘制调用.绘制调用很昂贵,因此使用条带节省的内存有时不值得降低性能.