以往游戏模型少头发
游戏经验丰富的玩家或许会在意到,过去几十年来游戏中的人物头像,要么不是短发就是带帽子,或者用有限的三角形像是把头发用厚厚的发胶梳起来。那么,随着NVIDIA DX11显卡GTX400系列的到来,这一疑问也水落石出。
NVIDIA发现,从NV30到GT200核心,GPU的渲染能力提升了150倍,但几何性能的增长居然连3倍都不到。在实际人物头像中,大约有10万根头发丝。在以前,游戏中的几何图形转换大多交给CPU计算,想要实时模拟/绘制长发, 并且让头发与场景互动, 几乎是不可能的事情。
DX11时代,新增的Tessellation技术对GPU几何图形处理能力提出了新要求,必须有全新的架构核心才能满足。NVIDIA的GTX400系列显卡的GF100芯片拥有特殊的硬件曲面细分技术(HW Tessellation),跨越了这种以往不可能实现的技术。
硬件曲面细分技术(HW Tessellation) 允许游戏开发者创造丰富的几何与互动特效。可以从数百根发丝模拟的基础计算中,凭空创造出18000根真实的发丝。这18000根发丝是运用几何渲染器(Geometry Shader)当角色靠近视点镜头时,所创造出来的,数百万个三角形所构成。从此游戏开发者可以创造超逼真的角色。逼真的头发是人物特写的重点,令人相信角色是真实存在的。
Tessellation简介
Tessellation这个英文单词直译为“镶嵌”,也就是在顶点与顶点之间自动嵌入新的顶点。Tessellation经常被意译为“细分曲面”,因为在自动插入大量新的顶点之后,模型的曲面会被分得非常细腻,看上去更加平滑致密。上图就非常形象的反映出Tessellation技术的原理和所实现的效果。
Tessellation主要是靠GPU内部的一个模块Programmable Tessellator(可编程拆嵌器)来实现的。能够根据3D模型中已经有的顶点,根据不同的需求,按照不同的规则,进行插值,将一个多边形拆分成为多个多边形。而这个过程都是可以由编程来控制的,这样就很好的解决了效率和效果的矛盾。TessellATIon能自动创造出数百倍与原始模型的顶点,这些不是虚拟的顶点,而是实实在在的顶点,效果是等同于建模的时候直接设计出来的。
除了大幅提升模型细节和画质外,Tessellation最吸引程序员的地方就是:他们无需手动设计上百万个三角形的复杂模型,只需简单勾绘一个轮廓,剩下的就可以交给Tessellation技术自动镶嵌,大大提高开发效率;而且简单的模型在GPU处理时也能大幅节约显存开销,同时大幅提升渲染速度!
Tessellation工作流程
Tesselation的用途非常广泛,比如取代虚假的视差映射贴图技术、生成物体运动的物理效果、流体的运动效果等等。上面这张图片就是Tesselation最典型应用——细分曲面、取代视差映射贴图。
GF100对Tessellation的头发模型演示
通过上面的简单介绍,回到最开始的话题, Tessellation在刻画模型头发方面到底魅力如何,还是通过下面的演示图片来感受下。
以上图片是通过NVIDIA专为GF100开发的演示Demo,名字叫做Hair。这个示范中角色的头发完全是模拟运算而来,由NVIDIA图形处理器(GPU)综合硬件曲面细分技术(HW Tessellation),几何渲染(Geometry Shading)…等技术所创造与绘制。
关于Hair Demo的技术信息:
头发是由DX11的硬件曲面细分技术(HW Tessellation)所完成模拟、创造、绘制而成的。
发丝是由DX11的硬件曲面细分技术(HW Tessellation)用等值线区域(isoline domain)凭空创造而来的。
由曲面细分技术引擎(tessellation engine)所创造的等值线(Isolines),被送入几何渲染器(Geometry Shader)以扩增其三角形细节。
只有166根头发备用来进行模拟运算, 这大约用到4500个头发顶点。
在最高的精细度层级(LOD, Level Of Detail)设定下, 可以凭空创造高达18000根发丝(也就是高达280万个三角形)流体动态模体(Fluid Dynamics Simulation)被用来模拟发丝迎风飘扬的特效。
迟发半年,NVIDIA的反扑
不得不说明的是,NVIDIA推出的GF100核心是设计完整且经优化的Tessellation架构。当然大家都知道,AMD凭借在经把原有RV770核心小幅改动加入DX11指令代码,便快速推出Tessellation架构的RV870核心。这样做虽然在抢占市场上虽然迅速,但仓促的改变DX10架构不免在造成DX11性能发挥的瓶颈。
事实上,AMD对DX10架构进行的小修补而提前发布DX11显卡用来抢占市场的做法,并没有得逞。凭借众多AIC的支撑,NVIDIA历来在渠道方面拥有不容忽视的力量。尤其国内一些拥有自己研发团队和加工工厂的AIC,在技术、成本、市场方面都有优势。这使得NV虽然迟发,但凭借出色的显卡性能和市场渠道,也让AMD为之无奈。
在当今DX11显卡市场上,NVIDIA的AIC占有率相当普及,如NV在中国区唯一核心合作伙伴翔升推出的金刚GTX480和金刚GTX470显卡,在全国各大一线城市的重要卖场都有现货出售,且厂商还支持电话及网络预订。
Tessellation实际性能对比
GF100除了在Hair Demo中演示了精彩的头发模型外,还可看到在《Stone Giant》这款针对DirectX 11 Tessellation效能十分依赖的Demo的测试结果。GF100方面,选用的是开始提到的金刚GTX470显卡;AMD显卡方面采用甚至更为高端的HD5970、HD5870以及HD5850。
从测试比分图中可以看到,采用GF100核心的金刚GTX470完全胜过AMD仓促推出的HD5850。不仅如此,即便是AMD最顶尖的双核心HD5970及最顶级的单卡HD5870也只能折服于NVIDIA的第二顶级单卡金刚GTX470。
因此,这不能不说是完全基于DX11开发的GF100才是真正的DX11核心。同样相信,在未来DX11游戏真正普及的时候,在GF100核心下,所有的游戏角色都会有一缕飘逸的头发展现在所有的玩家面前。