细分曲面另外一种提升画质的方式是通过置换贴图实现的,而这里就需要大量的后期控制,也就是说在大量顶点生成后,通过什么方式去控制这些新增加的顶点形变,以期达到我们想要的增加模型细节的目的。
实际上,控制新增加顶点形变的手段并不只有置换贴图一种方式,只不过它是被用到最多也相对来说比较容易的,所以我们在前文中一直是用“置换贴图”来表述形变控制。大体而言,形变控制除了用置换贴图外,还可以使用程序控制的方式。
由于通过细分曲面新产生的大量新顶点都是实际存在的,也就是都有三维空间坐标,通过一定程序的制定,就可以控制这些坐标进行位移,如果说通过贴图控制是静态的,那通过程序控制就是动态的,因为在程序中我们可以加入很多种变量,让顶点呈现不断的变化,比如说水面或者飘动的旗帜。
通过Occean technology demo这个测试可以非常明显的观察到,打开曲面细分技术,并且调节细分级数的不同,海面将呈现出明显不同的变化。特别是当级数提升后,海面的细节就变得极为丰富逼真。实际上去控制海面变化效果的程序代码是一样的,但是由于可控制顶点数量的不同,所以呈现出来的效果也就出现了不同,这就是曲面细分在这里发挥的作用。
实际上,在DX11曲面细分技术出现之前,这类效果就已经开始被使用了。在目前依然顶着最强画质头衔的《Crysis》中,Crytek2引擎就采用了一种叫做Screen-Space Tessellation的技术,实际上就是通过程序去控制大量的曲面细分顶点制造出逼真的海洋效果,再配合游戏本身出众的光影技术,使得效果更佳逼真。
AMD在演示HD5000系列的曲面细分效果时,展示了一个经过曲面细分处理后的旗帜拥有了更自然顺畅的飘动效果。这就是当顶点数量增加后,通过重力、风等物理程序控制的效果更佳连贯的结果。