在TriangleStrip和TriangleList之间,哪个执行速度更快?
我刚读到一些有趣的事情:“我的使用TriangleList方法得到了约780fps的结果,而只使用TriangleStrip的方法只得到了70fps”。我不知道他具体是在做什么,但根据这个说法,他使用TriangleList能够获得大约10倍的帧率。我发现这很反直觉,因为该列表包含更多顶点数据。
是否有人知道TriangleList为什么比Strip快得多的技术原因?
在TriangleStrip和TriangleList之间,哪个执行速度更快?
我刚读到一些有趣的事情:“我的使用TriangleList方法得到了约780fps的结果,而只使用TriangleStrip的方法只得到了70fps”。我不知道他具体是在做什么,但根据这个说法,他使用TriangleList能够获得大约10倍的帧率。我发现这很反直觉,因为该列表包含更多顶点数据。
是否有人知道TriangleList为什么比Strip快得多的技术原因?
三角形带是一种内存优化,而不是速度优化。在过去,当系统内存和视频内存之间的总线带宽是数据密集型应用程序中的主要瓶颈时,使用三角形带可以节省时间,但现在这种情况非常罕见。此外,在旧硬件中,变换缓存非常小,因此普通带比糟糕优化的索引列表更容易被缓存。
三角形列表之所以能与三角形带同样或更有效率,是由于索引。索引让硬件以非常可预测的方式转换和缓存顶点,前提是您正确地优化几何体和三角形顺序。另外,在需要大量退化三角形的复杂网格中,带将比索引列表更慢,并且占用更多的内存。
尽管如此,我还是有些惊讶你的例子显示了数量级的差异。