1 / 1
5.7 曲面细分阶段
曲面细分(Tessellation)是指通过添加三角形的方式对一个网格的三角形进行细分,这
些新添加的三角形可以偏移到一个新的位置,让网格的细节更加丰富。(见图 5.26)。
图 5.26 左图是原始网格,右图是经过曲面细分处理后的网格
下面是曲面细分的一些优点:
1.我们可以通过曲面细分实现细节层次(level -of-detai l,LOD),使靠近相机的三角
形通过细分产生更多细节,而那些远离相机的三角形则保持不变。通过这种方式,我们只需
在需要细节的地方使用更多的三角形就可以了。
2.我们可以在内存中保存一个低细节(低细节意味着三角形数量少)的网格,但可以
实时地添加额外的三角形,这样可以节省内存。
3.我们可以在一个低细节的网格上处理动画和物理效果,而只在渲染时才使用细分过
的高细节网格。
曲面细分阶段是 Direct3D 11 中新添加的,这样我们就可以在 GPU 上对几何体进行细分
了。而在 Direct3D 11 之前,如果你想要实现曲面细分,则必须在 CPU 上完成,经过细分的
几何体还要发送到 GPU 用于渲染。然而,将新的几何体从 CPU 内存发送到显存是很慢的,
而且还会增加 CPU 的负担。因此,在 Direct3D 11 出现之前,曲面细分的方法在实时图形中
并不流行。Direct3D 11 提供了一个可以完全在硬件上实现的曲面细分 API。这样曲面细分就
成为了一个非常有吸引力的技术了。曲面细分阶段是可选的(即在需要的时候才使用它)。
我们要在第 13 章才会详细介绍曲面细分。