泡泡网显卡频道 PCPOP首页      /      显卡     /      评测    /    正文

DX10终极杀人武器!Crysis全方位测试

● alpha to coverage

    在游戏中,经常使用带有半透明信息纹理的多边形模型来模拟复杂的物体,例如,草、树叶、铁丝网等。如果使用真正的模型,一颗边缘参差不齐的小草可能就要消耗掉几百个多边形;然而采用透明纹理,可以只用2~3个多边形就解决了。

{imageTitle}
半透明纹理示意——一片树叶

    然而,当使用这种有半透明信息的纹理时候,它的不透明和透明部分的边界线上,常常会出现难看的锯齿。采用半透明混合技术可以解决这个问题,但是它需要把场景中所有这类物体按照由远到近的顺序来绘制,才能保证它们的遮挡关系是正确的——这是十分消耗CPU时间的,所以很不可取。在以前,alpha测试和混合简直就是图形程序员的噩梦。


    在DirectX 10中,使用了一种新的技术叫做Alpha to coverage。使用这种技术,在透明和不透明交界处的纹理像素会被进行多极取样(Multi-sample),达到抗锯齿的效果。这就在不引入大的性能开销的情况下华丽的解决了这个问题,室外场景的游戏将大大受益于这种技术。树叶、铁丝网、草的边缘将会更加柔和、圆滑。

{imageTitle}
使用Alpha to coverage技术,叶片的边缘更加平滑

● shadow map filtering

 

    阴影图(Shadow map)技术已经逐渐成为了渲染真实感阴影的流行技术。在包括《战争机器》、《分裂细胞:双重特工》、《Ghost Recon》、《刺客信条》等的各大次世代游戏中都能看到它的身影。然而,由于shadow map的尺寸限制,用它实现的阴影边缘往往有明显的锯齿。在DirectX 10中,提供了对shadow map进行过滤的功能的正式支持。经过过滤后,阴影的边缘将会变得更加柔和。

 

● 游戏效果

 

    DirectX 10为游戏开发者提供了很多新的特性,采用这些特性可以用来开发大量的次世代图形效果。然而,由于这是基于强大、灵活的可编程特性基础上的,所以很难简单的指出这些特性都带来了哪些效果。实际上,很多图形效果都是对这些特性进行综合运用的结果。在这一部分,让我们来仔细的看一下几种次世代特效技术,感受一下新的DirectX 10特性在其中起到的作用。

 

● 次世代Instancing技术

 

    在前文中,我们已经用说明DirectX 10的常量缓冲器特性。其实,这里采用的技术有一个学名叫做Instancing,大意就是通过一个或几个模型来复制出它们的很多实例,实现满山遍野的树木、敌兵那样的效果。这种技术在DirectX 9时代就已经出现了,但是有很多的限制,例如模型不能有动画,所有的模型实例必须使用同一张纹理贴图和同一种材质效果,等等。这就给这项技术带来很多遗憾的地方——玩家肯定不喜欢看见游戏里满山遍野的敌人或树木都长成一个模样,或者只有那么几种模样。

 

    在DirectX 10中,通过常量缓冲器、纹理阵列、动态shader执行分支等特性,将Instancing技术从这些局限中解放了出来。模型的实例没必要使用同一张纹理贴图;它们可以通过自己本身的纹理来从纹理阵列中取出各自的纹理;它们甚至可以有不同的特效——程序员可以写一个包含很多特效的“超级”shader,然后为每个模型实例运用这个shader程序的不同执行分支部分,从而给不同的模型赋以不同的材质特效。甚至连为每个模型实例使用骨骼蒙皮动画这种需要大量变换矩阵操作的问题,在16×4096常量寄存器的强大攻势下都可以迎刃而解。

 

    “克隆人”的时代已经结束了,通过DirectX 10的高级特性,Instancing将允许每个模型实例拥有它的个性:纹理贴图,pixel和vertex shader,以及动作动画。每个实例都将会有它自己的生命。

 

● 基于象素级别的位移贴图技术

 

    在介绍这项技术之前,首先请允许我对工作在坐落于北京海淀区知春路的微软亚洲研究院/工程院的工程师们致以崇高的敬意。因为这项技术的实现方法,是由这些中国的工程师们研究、创造出来的。

{imageTitle}
实时每像素位移贴图。图象来源:Microsoft DirectX SDK。

    位移贴图技术,用过3DS MAX的读者可能不会感到陌生。在3DS MAX中,这种技术有时也被翻译成“置换贴图”,其核心思想就是在制作三维模型时采用比较低的细节,然后给这个模型赋上一张表面高度图;在渲染时,会根据这张高度图来修改模型的表面,使它们隆起或凹陷——这样,就可以十分省力的给模型表面加上真正的凹凸不平的效果。毕竟,在3DS MAX里一个点一个点的修改模型表面来添加凹凸细节,要比直接拿Photoshop绘制一张高度图麻烦的多。

 

    位移贴图要比单纯的normal map技术的凹凸贴图逼真——因为它是真正的将模型的表面进行修改,抬高或降低它们。然而,由于它需要在渲染时将模型表面进行细分,即将原来的一个多边形分成大量的小多边形,这样才能有足够多的顶点来进行移动。这在原来的DirectX中是不能实现的,因为那时没有geometry shader,不能动态生成多边形图元,也就不能实现动态的多边形细分。即使在有了geometry shader以后,将多边形细分也是一个消耗性能很大的操作。

 

    然而,微软亚洲工程院/研究院的工程师们另辟蹊径,创造了一种新的每像素位移贴图技术。它的大致过程是,将简单模型表面的三角形向上拉伸,成为一个三棱台,这样它就具有了一定的体积;而它的高度,就是模型表面根据高度图进行位移后能达到的最大高度。然后在填充三角形的每个像素时,通过将观察者的视线和这个三棱台进行求交,得到一个相对于这个三棱台的交线段。

 

    由于高度图是相对于这个三棱台的,只有同样使用相对于这个三棱台的交线段,才能正确的求出线段和高度图所代表的表面高度的交点。然后再通过这个交点来计算应该把颜色纹理中的哪个点绘制到屏幕上。在这里只是简单介绍了一下这种技术的大体原理,实际的实现算法比这个要复杂,因为需要克服各种各样的问题。

{imageTitle}
每像素位移贴图原理示意
图片来源:Microsoft DirectX SDK

总结

    还有很多新出现的基于DirectX 10的次世代图形特效技术,在这里就不一一赘述了。相信随着时间的推移,越来越多的实时图形特效技术将会大放异彩,实时演算的画面效果达到非实时CG动画效果的一天终会到来。

4人已赞
第1页:Crysis评测全文目录第2页:2006年E3大展初露锋芒第3页:2004一鸣惊人!Crytek简介第4页:绝对黑马!空前美丽的FarCry第5页:Crytek和育碧分手!Crysis出炉第6页:打造一流的产品!Crytek拥抱EA第7页:斗气之作?育碧打造FarCry2第8页:等等等!艰难跳票历程第9页:游戏历史图片:战斗类场景第10页:游戏历史图片:主角特写第11页:游戏历史图片:士兵写真第12页:游戏历史图片:第一人称视角第13页:游戏历史图片:游戏室内室外场景第14页:游戏历史图片:雪地中的战斗第15页:单人游戏主要武器:SCAR步枪第16页:朝鲜士兵主要武器:FY71突击步枪第17页:最具可玩性:Nano作战服第18页:最值得期待的武器:分子捕捉器第19页:载具部分:朝鲜T-108坦克第20页:游戏中的载具:装甲车辆第21页:垂直起降类空中载具第22页:海陆空立体战:游戏中的舰船第23页:DirectX10架构特性及其优势第24页:Shader Model 4.0第25页:几何Shader以及Stream Out第26页:高级渲染语言(HLSL 10)第27页:其他改进和游戏效果第28页:CryEngine 2引擎特性:地图编辑器第29页:CryEngine 2引擎特性:音效、光照和阴影第30页:CryEngine 2引擎特性:集成工具第31页:Crysis画面和真实自然风光对比第32页:Crysis画面堪比现实场景第33页:Crysis画面和考艾岛对比第34页:更加清晰的老对比图第35页:虚幻3引擎时代即将结束第36页:DX10引擎更加华丽第37页:同是DX10!Crysis对比Warhound 第38页:集最新特效于一身 Crysis的DX10最成熟第39页:体积光照并非WIC专利!Crysis更精彩第40页:视差贴图不是COJ专利!Crysis更真实第41页:景深不是失落星球专利!Crysis更明显第42页:HDR+AA不是A卡专利!DX10完美支持第43页:Crysis独有高级特效:破坏场景/昼夜交替第44页:DX9顶级特效升级版:软阴影/动态模糊第45页:DX10集大成者!Crysis令人望眼欲穿第46页:Crysis并不恐怖 新老显卡全兼容第47页:Crysis四个等级画质对比(720P)第48页:CrysisDX9 vs.DX10对比(1080P)第49页:1600×1200!demo最高特效黑夜截图第50页:1600×1200!demo最高特效白昼截图第51页:CPU测试程序截图第52页:GPU测试程序截图第53页:提个醒!制作方谈游戏的配置第54页:多核不浪费!CPU性能对比测试第55页:夸张!内存使用测试第56页:23款显卡测试成绩横向对比第57页:巅峰较量!6款高端显卡对决第58页:显卡优化设置篇:8800Ultra第59页:显卡优化设置篇:8800GTX第60页:显卡优化设置篇:8800GT第61页:显卡优化设置篇:8800GTS 640MB第62页:显卡优化设置篇:8800GTS 320MB第63页:显卡优化设置篇:2900XT第64页:显卡优化设置篇:2900Pro第65页:显卡优化设置篇:7950GX2第66页:显卡优化设置篇:8600GTS第67页:显卡优化设置篇:8600GT第68页:显卡优化设置篇:2600XT第69页:显卡优化设置篇:7900GS第70页:显卡优化设置篇:X1950GT第71页:显卡优化设置篇:2600Pro第72页:显卡优化设置篇:X1650GT第73页:显卡优化设置篇:7300GT第74页:老显卡慎用!专用优化驱动实测第75页:全文总结:PC游戏的明天

关注我们

泡泡网

手机扫码关注