triangle strip好于triangle list:
- 省index buffer
- triangle setup速度更快
所以通常意义上,能用strip就strip吧。
尤其是在程序生成的地方应该使用triangle strip的。
限制就是直接使用是需要带状的,任意形状需要用degenerate triangle来做,也就是使用有重复点的triangle。
(ABCDDFFEDC, which would be interpreted as triangles ABC CBD CDD DDF DFF FFE FED DEC)
需要注意的就是vertex shader里对于有同样点的triangle仍旧会做计算,当然如果cache hit就直接过,在rasterization阶段会对无面积的triangle干掉。
cache 命中的地方,大家都熟悉了,使用id3dxmesh::optimize会有不错的cache效率提升。
google的时候看见一个用triangle strip以螺旋的方式来做sphere construction的,挺有意思,贴它的代码吧: