曲面细分的起源
提到曲面细分,很多人立刻联想起了与之配套支持的API DirectX 11以及操作系统Windows 7,还有第一款支持DX11的HD5870显卡。曲面细分技术让简单像素模型变得丰满多姿,给我们带来栩栩如生的逼真效果。
不过NVIDIA在DX11下的呼声越来越高了,拥有最高16个曲面细分单元的Fermi在曲面细分的处理速度上的确惊人。就连马上沦为低端的GTX550Ti都拥有4组Tessellator(曲面细分单元),而实际在DX11游戏中的性能如何?
谁才是曲面细分的创造者?
早在2001年ATI就创造了这项技术,并最早应用在了XBOX 360上。从DX8的时代,ATI和微软联合开发的TruForm(N-Patch)技术,就是如今Tessellation的雏形,当然当时的技术还不够完善。
当时的Tessellation之所以没有形成气候,还有一个原因就是GPU的计算能力较差,并且软件和游戏厂商大多没有采纳和支持,以至于到了DX10时代AMD(ATI)即便在GPU内部集成了Tessellator也没有很好的发挥作用。直到DX11时代,GPU本身来说计算能力已经到了一个空前的高度,具备了能够“硬解”曲面细分的能力,再加上包括微软在内的软件支持,曲面细分才得以真正的重视和发挥。
曲面细分够用就好
曲面细分从学术属于上讲叫“镶嵌化处理技术”,就是在顶点与顶点之间自动嵌入新的定点,也就是在这样“塞入”这些新定点之后,被渲染的模型会变的平滑细腻,从来带来更直观生动的视觉效果。
通过如此逼真的效果展示并得到大力的推广后,其用途也是越来越广:
利用Tessellation技术产生的头发模型
这是NVIDIA一个展示其DX11的Demo,Tesselation作为DX11特效之一自然也是宣传的重点。以往《最终幻想》的开发,日本团队光尤娜的头发设计都要数月甚至更长的时间,因为每一根头发都需要建模。有了Tessellation之后程序员不需要在设计上亿根头发,只需要设计出一个简单的轮廓,并且设定要进行曲面细分处理的等级即可。这样以来便大大降低了编程的难度,并且减少了其他性能的开支,提高效率。
但并不是曲面细等级分开的越高越高,事实上目前的游戏最高的也就是开到30%左右,过高的等级会加重渲染负担,而对画质的提升到了一个瓶颈的地步后人眼已经分辨不出来了,最终换来徒劳无功的结果。
NVIDIA是将曲面细分任务通过Polymorph引擎单元分配给CUDA单元来做处理,通过这样的方式来分配的好处就是利用比AMD高出好几倍的曲面细分管理单元在单纯的曲面细分计算中拥有着比较强的处理能力。但曲面细分并不是DirectX 11特效的全部,在实际的游戏中,普通的3D渲染以及其他任务也都是要消耗流处理器资源的,因此在超高分辨率,超高抗锯齿等极端应用下,NVIDIA的这种设计缺陷便暴露出来了。
AMD认为适度的曲面细分才是合理的,过分的加大计算负载是白白浪费计算资源,在HD6800/HD6900开始,AMD在核心内部又增加了一个专用与曲面细分计算的单元,并且还增加了超线程指令指派器。这样一来即便是在3D渲染任务很重的情况下也能够保持强劲的性能。
谈到这里,GTX560和HD6870在DX11游戏下不分伯仲也是在情理之中,况且3DMark11也是一个鲜明的例子。
网友评论