孤岛危机 最强神作!Crysis深度剖析与优化指南

时间:2015-09-14 来源:88130安卓下载 作者:佚名

前言:万众期盼的危机

万众期盼的“危机”

2007年10月26日是游戏界一个值得纪念的伟大日子,因为就在这一天,一款万众瞩目的游戏诞生了!!~咳~……确切地说因该是“一款吸引全球游戏人眼球的游戏DEMO”诞生了!!!没错,它只是一款DEMO,一款试玩而已!这个DEMO的名字就叫做:“Crysis Pre-Release DEMO”(《孤岛危机》预发试玩版,多么伟大的名字),然而正是这样一款试玩在整个游戏界造就了空前无比的效应:早在8月底,CRYTEK就对业界宣布他们万众瞩目的钜作Crysis的试玩版将在9月26号发布。然而在经过几个版本的BETA版试测之后,CRYTEK决定忽悠全世界的玩家,将DEMO推迟一个月发布。此次跳票让整个业界的人士失望之极~~~一眨眼(实际上小编由于对Crysis的极度渴望,一个月时间简直就是“度日如年”)到了10月25号,游戏界大奸商EA突然宣布凡是预定了Crysis正式版的玩家,可以准时在26号当天通过VIP通道下载到Crysis DEMO,而没有预定的普通用户将被推迟24小时,也就是说VIP用户可以提前一天抢先体验到Crysis DEMO!!!这种以提前一天玩到DEMO的作为回报的销售策略居然引发了一场全世界范围的Crysis预定狂潮~~~在短短几天里,预定Crysis的人数就突破四千万,这个庞大的数字确实令人咋舌……由此不难看出Crysis这款钜作在玩家心目中的地位~~

在这个大作林立的季节,Crysis之所以能够突破《虚幻竞技场3》、《战争机器》、《使命召唤4》、《地狱门:伦敦》等一线大作的重重包围,脱颖而出成为业界的焦点,是因为它不仅继承了前作FAR CRY出色的游戏性,而且更重要的是为游戏界带来了一场全新的图形效果革命,这场革命势必为3D游戏图形发展历程树立一个全新的里程碑。而上一次革命要追溯到2004年那个FAR CRY、DOOM3、RIDDICK等众多优秀作品同台竞技的年代,此后虽然也不乏像FEAR、上古卷轴4、STALKER这样的优秀作品,但就画面上的进步而言,跟04年的顶尖作品相比都还远远谈不上“革命” 。在经历了近三年的平平淡淡之后,在这个Vista、DX10、统一着色器架构硬件等众多新鲜技术、产品崭露头角的年代,无论是玩家还是软、硬件商都迫切需要一款能够为图形领域带来革命浪潮的游戏!而正是在这种背景下,Crysis耀眼的技术光芒成功捕捉了全世界玩家的目光,造成如此轰动的效应也是理所当然!

CRYSIS DEMO的实际效果果然没有令我们失望:华丽而真实的画面、高度拟真的物理系统使得任何平台上的任何游戏都相形见绌,绝对是前无来者的惊世之作,其甚至会在未来几年内成为其他游戏开发者的眼中钉,因为它是在太难超越了。而这样一个被全世界奉为神作的Crysis到底是一个什么样的游戏?其背后到底集合了多少高科技秘密?如何才能在今天的硬件上跑出最优的画面?今天,小熊在线将带领各位看官,从Crytek的历史、Far Cry的成名历程、CryEngine的技术解析、Crysis性能评测、图形效果深入优化等方方面面,对这款钜作进行全方位的剖析! 下面我们先来了解Crysis的生父——CRYTEK



光影系统:直接光照

直接光照

CRYENGIE 2在处理直接光照部分采用了shadow mapping(即将光照中的物体深度保存在一张2D贴图之中),而容积阴影则被彻底抛弃。虽然CRYTEK早在FAR CRY时代就采用了shadow mapping,但在FAR CRY中只有极少数的物体能够单独投影,对于大部分物体,通常是采用将大量物体的阴影合成为一张阴影贴图的做法。从光源发出的方向同步投射一张简单的阴影贴图可以做到不错的效果,但是在玩家视点附近的阴影贴图分辨率很低,造成难看的块状阴影。FAR CRY还试用了trapezoidal shadow maps(PSM)跟 perspective shadow maps(TSM)两种shadow map。

CRYENGINE 2采用了跟多游ARK 06相同的cascaded shadow maps (CSM),这种shadow map技术通过在玩家视点区域内投射同一分辨率的多张阴影重叠来实现细腻的阴影效果。

为了高效处理静态光照,CRYENGIE 2采用了一种称为“动态遮蔽映射”(dynamic occlusion map)的技术,该技术可以很好地处理静态光照下的投影,但阴影的边缘存在粗糙的锯齿,而且被拉伸的贴图也带来了大量的失真。为了解决阴影贴图边缘的锯齿问题,CRYENGIE 2引进了“百分比渐近过滤”(percentage closer filtering,简称PCF),这样可以一定程度上减弱阴影边缘的锯齿状失真,但是该技术需要许多采样样本,因此性能不高,而且一些较老的ATI显卡无法支持,对于R520之后的ATI显卡则可以通过Fetch4功能来模拟。

从左至右,从上到下,分别为逐级提高百分比渐近采样的效果对比

为了取得更高的效率和画质,CRYTEK又为PCF做了改进,跟一味增加PCF的过滤采样不同,CRYTEK采用了“随机查询每象素”的技巧,这样可以在使用较少的采样样本的情况下获得接近高采样的画质,可以明显减少阴影边缘的颗粒状失真。而通过调节采用的高低,又可以让玩家根据需要自由调节性能跟画质。

对于地形阴影,CRYTEK曾尝试采用从开始角度到结束角度下不同镜头的预计算阴影贴图来模拟动态地形阴影,但最后以失败告终。接着CRYTEK又尝试以增强更新率的occlusion map,但也同样不凑效。CRYTEK的三次尝试是直接让他们普通的shadow map上阵,但结果出来的阴影效果过于统一而显得不够自然,并且边缘过于生硬,而这时候采用“随机查询每象素”的技巧并不凑效,会出现严重的颗粒感。最后CRYTEK尝试使用variance shadow map(方差阴影贴图)并最终取得了成功,其唯一的不足就是在多个投影物体相间重叠的时候会产生问题,但这种情况在地形处理上很少发生。

阴影遮罩贴图

为了避开SM2.0指令数不足的缺陷,CRYENGINE 2将阴影查询从shader中分离开来,此举还可以减少结果shader的合成数量以及将多重阴影结合起来。CRYENGIE 2将计算得出的8 bit阴影贴图查询结果保存于一张平面坐标空间贴图中,这就是所谓的“阴影遮罩”。一张4通道的32bit 贴图就可以提供足够的存储位数并且还可以被作为渲染目标,而且4个通道最多可以合成4个光照基数到一个象素。但是该技术对半透明几何体支持不佳,在处理半透明物体的时候CRYENGINE 2改用在shader中做shadow map查询的方式进行。



光影系统:简洁光照(环境光照)

间接光照 (环境光照)

随着容积阴影与阴影贴图等先进投影技术的引入,3D游戏中的光影效果在过去几年里有了翻天覆地的改进。尽管如此,几乎当前所有的游戏在光影处理上都存在一个重大缺陷——那就是缺乏对“间接光照”的表现。比如当年以出色的光影效果而闻名的DOOM 3,虽然其光影效果令玩家们印象深刻,但当时仍有很多人发现了该游戏在处理光照效果上存在一个重大缺陷:游戏中的场景处于光源之内的就“灯火通明”,而光源之外就是“漆黑一片”,明亮区域与黑暗区域之间缺乏过渡,完全没有所谓的“半影区域”,这样整个环境看起来就显得相当生硬突兀。实际上这就是由于DOOM 3缺乏对“间接光照”的计算所造成的,在现实环境中,光束的行程并非只局限于从光源出发然后到接收物体处结束,事实上由于自然界中的大部分物体对于光线都存在不同程度的反射率,所以光束在到达接收物体表面之后又有一部分被反射到周围的物体上,这时光线的接收体已经变成了“环境光源”,对其周围的物体跟场景能够产生光照效果。光线的跳转、转移使得“直接光照”以外的区域也能受到一定程度的光照,从而产生一种“半亮半影”的自然过渡区域,而这种效果正是“间接光照”所要表现的。

DOOM 3几乎没有考虑到间接光照的计算,上图灯的上方跟人物周围的场景漆黑一片

事实上不仅仅是DOOM3,后来发布的Riddick、FEAR、SCCT、Quake 4等光影效果出众的游戏同样缺乏对间接光照的支持。只有HL2采用radiosity Normal Maps技术在一定程度上实现了间接光照,但由于HL2中动态光源太少加上蹩脚的投影技术,最终出来的效果并不出众。而跳票王STALKER也秘密内置了对间接光照的支持,虽然效果比HL2要好许多,但由于性能代价太大以及算法还不够完善等问题而被开发商隐藏起来,玩家只能通过控制台来打开。

不出意外的话,Crysis将成为首个对间接光照支持最完整、效果最出色的游戏。对于间接光照的实现,Crytek原本打算采用目前最广受认可的全局光照算法——光子映射来预计算辐射度信息,并采用类似HL2的做法将光线的辐射信息保存在贴图中,crytek甚至为此而准备了一个叫做“3D传输采样器”的工具,可以很方便地运用光子映射算法来计算全局光照数据。不过由于数据存储量以及计算量太大,Crytek最终抛弃了这种方法。

实时环境关照贴图可以将预先计算的环境光照信息添加到室内环境的表面信息中,

包括当前环境的入射光位置跟颜色都可以被动态添加到用于照明室内场景的光照强度中,

此举可以显著提升实时逐象素光照跟阴影的逼真度。

Crytek改用另一种更加简单的做法——Real-Time Ambient Map(实时环境光照贴图,最近开始走红的实时间接光照实现算法,STALKER在室外场景就采用了该技术来实现环境光照,下文简称RAM),跟之前的做法相比,采用RAM每象素只需保存一个标量环境遮蔽值,该数值可以通过向所有方向发射光线来计算,而且最终得出的数值还可以反复使用。RAM在着色程序中根据带有遮蔽值的象素、相对于表面的光照位置以及光照颜色和表面法线等信息来计算物体表面对光线的接收程度。值得一提的是,这里计算得出的结果只是一个近似值,精确度不高,但是对于欺骗人眼还是没有问题的。

室外场景里使用了2.5D环境光照技术,该技术可以根据环境物体(比如植物、建筑物)对光源的遮挡情况,

正确计算出物体接收到的光照量

为了提高RAM的效率跟适用范围,Crytek的天才程序员又对其进行了改进,改进后的算法称为“Screen-Space Ambient Occlusion” (屏幕空间环境光遮蔽,下文简称SSAO)。SSAO通过采样象素周围的信息,并进行简单的深度值对比来计算物体身上环境光照无法到达的范围,从而可以表现出物体身上在环境光照下产生的轮廓阴影。由于可以利用我们前面介绍过的“逐象素场景深度计算”技术计算得出的深度值直接参与运算,所以SSAO的效率相比RAM有了显著的提高。

上面四张图片分别为打开(上)与关闭(下)SSAO的效果对比



三兄弟的游戏梦与CryEngine的诞生

三兄弟的游戏梦

1999年,Faruk, Avni和Cevat Yerli三兄弟在德国法兰克福创立了“Crytek GmbH”这家互动娱乐开发公司,当时三兄弟的梦想是开发一个能够创造历史的游戏。Faruk, Avni和Cevat Yerli都是不折不扣的游戏迷,特别是作为Crytek CEO的Cevat Yerli,早在Commodore 64时代就经常与游戏为伴,后来的大学时代更是迷上网络对战。正是爱好所激发出来的热忱才能让Crytek成为如今的业界技术领头羊,如今Crytek已经从创建开始的小工作室发展成为如今员工人数上百的大型游戏开发公司,120名来自世界各地的员工(其中有一名员工来自我们中国:))为Crytek的游戏开发项目注入了来自不同国家的文化底蕴。

帝国的根基,CRYENGINE 诞生!

三兄弟明白要想开发出一款优秀的作品,就必须现有一个优秀的引擎。当时出于自身的技术贮备不足与资金有限等因素,很多游戏开发商都采取购买第三方现成引擎的做法,而那个时代ID的Quake Engine、EPIC的Unreal Engine以及Monolith的LithTech引擎三足鼎立,几乎统治了整个第三方游戏开发引擎市场。但Crytek并不想依赖于其它人的技术,在公司成立后,他们就全力开发自己引擎。

在经过了两年左右的不懈努力之后,Crytek的著名引擎,第一代的CryEngine终于诞生了!!CryEngine不仅集合了当时诸多先进特性于一身,而且还有一些其他公司说没有的独门技术。下面我们就来简单回顾一下CryEngine的技术特性:首先是超级远景渲染,CryEngine可以渲染超过一公里外的远景,如此遥远的可视范围使得就算是在高分辨率的显示器上,远处的敌人也会被缩小为一个象素点般大小,这对于那个时代的游戏来说是不可想象!可以说当时的硬件性能是无法满足如此庞大远景对多边形的需求量的!为了能够尽量减少多边形的使用量,为CPU与内存减压,CryEngine出了使用动态LOD跟多边形遮挡剔除等提高无效渲染的技术外,更重要的是引进了一项后来大红大紫的技术——Noraml Mapping!没错,第一个大量运用Normal Mapping的游戏引擎不是我们熟知的DOOM 3 Engine而是Cryengine,之所以大部分玩家是在玩到DOOM 3才开始认识Normal Mapping这项技术是因为在CryEngine/Far Cry中,Crytek为他们的normal mapping技术起了一个很形象化的名称——“PolyBump”。这项在当时相当创新的技术是由Crytek的创始人Cevat Yerli跟其他两名天才程序员Marco Corbetta 和 Martin Mittring在2001年引进的,此外还有一项被称做Dot3 Lightmap的光照技术,用于辅助PolyBump在非真实动态光源下也可以很好地表现物体表面的凹凸效果。CryEngine 1还具有很强的可扩展性,能够与时俱进,在04年又增加了对SM3.0以及FP16精度HDR的支持,时至今日,CryEngine 1的改进增强版仍被几部未发布的大作所采用。



游戏界的《侏罗纪公园》

初露锋芒 X岛浮出水面

如果你在2000期间曾光顾过Crytek的官方网站的话,那么你可能还记得但是网站上放出了大量侏罗纪公园风格的3D截图,当时你可能会猜想Crytek是不是正在秘密开发一部以侏罗纪恐龙为题材的游戏?

果然到了2000年的E3大展,Crytek在经过一年多的“闭门造车”之后,首次出席这一年一度的游戏盛典,当时他们的参展作品正是一个名为X-ISLE的技术展示DEMO!Crytek甚至将自己自嘲为E3历史上唯一一个支付入场门票的参展商:D在这一年的E3大会上,Crytek的X-ISLE DEMO可以说是技惊四座,演示画面上郁郁葱葱的孤岛上逼真巨大的恐龙来回游走,天上飞的地上爬的,各种类的恐龙一应俱全,加上漂亮的海水效果跟岛上的植被互相呼应,其画面效果可以说是美不胜收。那时候Cevat Yerli的英语虽然比较蹩脚,但是其绘声绘色的解说加上X-ISLE超高水准的画面,很快就吸引了NVIDIA跟UBI的眼光。

第二年,Crtek计划将X-ISLE分为两个项目进行开发,一个是作为NVIDIA新产品GEFORE 3系列的演示demo的全新X-ISLE技术DEMO,该DEMO还被计划开发为一个介绍恐龙知识的互动教学软件;另一个则是X-ISLE的游戏版本,计划将被开发为一个大型的FPS冒险游戏。由于GEFORCE 3可编程着色器技术的引进,X-ISLE的画面效果得到大幅增强:Pixel Shader不仅为恐龙的皮肤带来真实的凹凸粗糙感,而且也为水面带来真实的反光倒影;Vertex shader的关键帧补偿让恐龙的骨骼动画更加生动自然;而PolyBump则让画面保持高细节度的同时保证了效率,按照NV跟Crytek的说法,一片GEFORCE 3就可以在同屏幕上流畅渲染50头恐龙!!!

Far Cry社团尝试通过MOD的方式让FC重返《X-ISLE》



年度黑马,成名之作

年度黑马,黄花大闺女之作——Far Cry

就在一年之后,Crytek突然取消原本以侏罗纪公园为主题的X-ISLE项目,将其改名为《FAR CRY(孤岛惊魂)》,并且主题风格也完全取消恐龙的设定,唯一保留下来仅仅是那座“孤岛”。

Farcry的故事背景被设定在南太平洋一座美丽的世外孤岛「Cabatu」上。玩家所扮演的主角「Jack」是一名拥有神秘背景及不为人知过去的战士,为了逃避过往而选择在南太平洋群岛经营出租快艇的生意。没想到天算不如人算,在他答应受雇于一名女记者接送她到海上孤岛「Cabatu」时,却突然发现原来岛上已被一群来历不明的军人当成秘密基地,接着女记者不幸被俘,自己的快艇更被炸毁,已经退无可退的「Jack」只好选择搏命一战!玩家千万不要被这座美丽小岛的外观给骗了,当玩家真正开始扮演「Jack」时,玩家就会发现原来这座看似天堂的小岛也可能是无间地狱!

「孤岛惊魂」中不但有超过15种武器,更有5种以上的交通工具以及10多种不同特色的敌人,游戏更提供了自製地图功能,让玩家发挥创意自行设计单人及多人对战关卡。而当然,「孤岛惊魂」也支援多人连线功能,让玩家和来自世界各地的高手们一决高下!

图象方面,Far Cry跟现在的Crysis一样,为当时的游戏图形领域带来一场前所未有的革命!经过5年来不断地改进,CryEngine 1已经完全支持当时最先进的SM2.0,而支持的API也从当年的X-ISLE DEMO所使用的OGL过渡到更加简单易用的DX 9。当时Far Cry普一推出就立刻成为图形界的评测标准,两大图形芯片巨头NVIDIA跟ATI也围绕Far Cry展开了一场“优化”角逐,双方的FANS也为此争论不休。当时ATI R3XX系列在Far Cry漂亮的PS2.0反光效果以及NV3X系列的无能至今仍为两大阵营的FANS们所“津津乐道”。

FAR CRY中的经典峡谷场景

更为难得的是Crytek并没有在游戏推出后就松懈,仍坚持引领领导技术潮流:在6800显卡推出后Farcry 1.2使得其成为第一个支持Shader Model 3.0的游戏,1.3版本使得其成为了第一个支持HDR的游戏,在1.32其又成为最早的64位游戏之一,在ATI Radeon X1800推出后其又加入了HDR+AA的支持。

1.3补丁下的眩目HDR效果

Far Cry是在2004年3月发售的,同期发售的还有EPIC的《虚幻竞技场2004》,而FPS老前辈的id Software的《毁灭战士3》和Valve的《半条命2》也是在当年发售,这些巨作对于初出茅庐的Crytek来说就像三座大山一样挡在他们面前。但这些困难并没有难倒Crytek。出于它们对技术和纯粹游戏乐趣的追求,Farcry在推出后就备受业界和玩家的好评,游戏不仅叫好还叫作,仅在美国Far cry就销售了40多万套。Far Cry的成功让Crytek这家原本默默无闻的小厂商首次被全世界的玩家所认识,让Crytek从此成为游戏界一颗耀眼的明星。



告别UBI转嫁EA

与老东家分手,携手新欢

在2001年的E3大会上,育碧老总Yves Guillemot这位伯乐相中了Crytek这匹黑马,此后UBI成功发行Far Cry让Crytek奠定了今天在业界的地位。不过双方的关系却并非外人看来那么融洽,早在开发Far Cry期间,双方的矛盾就不断恶化,在作品最终完成之际,双方的互信基本已经消耗殆尽。在Far Cry大获成功之后,UBI看到这一品牌所潜在的巨大商业价值,于是趁热打铁,连续推出Xbox版《孤岛惊魂:本能进化》和Xbox 360版《孤岛惊魂:本能掠夺者》两部Far Cry系列作品,赚了个钵满盆满。

UBI的这一举措也最终激怒了Crytek,虽然后者对Yves Guillemot冒着风险承担了《FarCry》发行任务的知遇之恩,但双方的决裂仍然势在必行,双方最终分道扬镳。此次决裂育碧完全从Crytek处获得FarCry系列的知识产权和CryEngine游戏引擎的永久授权。至此开始育碧将拥有唯一的游戏开发权,还可以利用“游戏角色、造型、版权和环境设定”发布“任何格式的终结、附加、衍生和推销产品”,同时育碧也可以利用FarCry版的CryEngine引擎任意开发、销售、分发“无限制数量”的游戏,而且无需和FarCry知识产权有任何关系。如今CryEngine 1已经为UBI所占有,目前已经有数部大作正基于CryEngine 1的改良升级版本开发中,其中甚至包括Far Cry的续作——Far Cry 2,因为Crytek已经完全丧失了Far Cry这一品牌的使用权。值得一提的是,从Far Cry 2最新公布的视频来看,改良后的CryEngine 1画面效果具有跟CryEngine 2叫板的实力!

Crytek方面,在跟UBI分手之后,他们又与业界的大腕EA结为新欢,EA将为Crytek的新作负责发行工作。Crytek表示,与当初的育碧相比,自己现在的发行商EA公司提供了更多的自由空间和更好的支持。EA在各方面都很慷慨,从商业角度看,Crytek的发行和市场推广方面得到了更多支持和更多自由,能更专注于自己的事务,同时能请求更多的支持;而EA也乐于提供,因为双方都想打造出第一流的作品。

很快,Crytek就完全投入到新作品的开发工作上,新一代的CryEngie已经蓄势待发,而由于丧失了Far Cry的品牌权,他们的Far Cry正统续作改用Crysis命名,中文名《孤岛危机》。这样一场前所未有的“危机”正在遥远的德国开始酝酿…………



酝酿“危机”

“危机”的酝酿

Farcry是Crytek的第一个游戏,其给他们积累了很多宝贵的经验,当Farcry还在开发的时候,Crytek知道这是同Doom 3和Half-life2的一场市场竞赛,世界知名的id Software和Valve的游戏就象两个800磅重的大猩猩,虽然后来事实证明Far Cry本身的优秀质量绝对可以跟它们相抗衡,但当时Crytek还是采取了抢先上市的策略,所以Farcry是个急促的项目,虽然Crytek保证其符合他们自己内部的质量标准,但他们知道如果他们有更多时间就会做得更好。

在2004年Farcry还在后期开发的时候Crysis的开发工作就开始了,Cevat提出要将游戏的丛林地表冰冻起来,将其变成“冰冻的天堂”,这不仅仅是个技术上的问题,还要考虑到剧情的安排。冰冻的丛林的特性不同于一般的丛林,树木和其他物体会由于超低温而更容易碎裂。他们也需要解释丛林为什么会冰冻起来,于是他们就想起了外星人入侵引起环境灾难的剧情。

Crysis不仅仅只是图象引擎的增强,而是在多方面都将是个更大更有深度的游戏。游戏的情节使得游戏有很强可重玩度,游戏有很多地方可以发掘和探索。如如果你一个队友过早就被杀掉,他就不能在后面给你情报帮你更轻松的完成任务,虽然它不会影响你通关游戏,但你依然可以重新尝试故事发展的不同方向。而这次发布的DEMO也已经证实了这一点,国外玩家已经证明走不同路线可以打出三个不同的结局。在自然环境游戏将会有更多策略,纳米作战服使你的角色有了不同的特别能力,如果你被攻击,你可以选择提升装甲使得你更耐打或者选择提升速度使得你更难被击中,你可以做不同的选择。

游戏剧情介绍

  2019年,一颗巨大的小行星撞击了地球。

  朝鲜政府迅速的封锁了撞击的岛链,将神秘的小行星归为己有,美国也紧急的派遣出三角洲特种部队去调查局势并报告给五角大楼,朝鲜和美国之间的冲突一触即发。这时,小行星突然爆炸,出现了个2000米高的外星飞船,并产生了个巨大的球型力量场,冻结了岛很大一部分区域并剧烈的改变着全球的气候系统——对地球入侵开始了。

  在这样的情况下两个敌对的国家不得不联合起来共同对抗异型从而拯救全人类。玩家必须带领他的爆破小组穿过茂密的热带雨林、荒芜的冰原地带,最终到达外星飞船的核心区域同异型展开殊死搏斗。



CryEngine 2的诞生

CryEngine 2 技术剖析

  CRYTEK在04年发布的黄花大闺女作《孤岛惊魂》(Far Cry,下文简称FC)当时在技术上可以说是技惊四座,它不仅大大提高了同类型游戏的技术门槛,而且也被视为那个年代的“次世代”游戏标准。在FC大获成功之后,CRYTEK原本可以稍微增强改进一下CRYENGINE 1,然后就像其他游戏开发商那样推出一款换汤不换药的“续作”,这样就可以舒舒服服地再捞上一笔!但是决心成为业界领头羊的CRYTEK并没有采取这种保守的做法,为了满足他们对技术与美术的无尽欲望,他们决心重新开发一款全新的游戏引擎,然后再大幅改进游戏的设计以及架构以求添加更多的创新特性。在这种背景下,FC的新生续作《孤岛危机》(Crysis)粉墨登场。Crysis在类型上仍然延续FC的FPS风格,但是各方面都将比FC有长足的提高,无论是游戏性还是画面,无论是技术上还是美工,无论是物理效果还是AI,Crysis都将比Far Cry更上一层楼!而只有在全新的CRYENGINE 2引擎才能让这一切成为现实!

CRYTEK内部所有的游戏设计师、程序师以及美工们经过一轮深入研讨之后,为CRYENGINE 2制定了一系列的技术目标:

首先CRYENGINE 2必须满足CRYSIS三种主要环境的渲染刻画,这三种环境包括:

热带天堂岛

特点:大量的物体、深度图、浩瀚的海洋、超级远景、主要方向光源(如太阳、月亮)所带来的环境光照等等

异形基地的室内场景

特点:大量的点光源、巨大的区域房间、多边形遮蔽剔除、容积雾等等

冰天雪地

特点:冰雪材质的表现、次表面散射等等

满足上面三种不同环境的需求是一项不小的挑战,而逐个为不同特性的关卡做优化则是难上加难:

达到电影、照片级画质而不落入“恐怖谷”之中(注:恐怖谷理论是由日本机器人专家森昌弘提出,当机器人与人类相像超过95%的时候,哪怕它与人类有一点点的差别,都会显得非常显眼刺目,让整个机器人显得非常僵硬恐怖,让人有面对行尸走肉的感觉。这里引申到3D游戏人物上,但3D人物做得越逼真,观众的眼光就会越加挑剔,3D人物与真人间一丁点的差异都会显得格外刺目,所以3D人物越做得逼真越难令人信服)

游戏的画质越接近电影,观众的眼光就会越加挑剔

动态光照与投影

预渲染的光照对很多提高性能和画质的算法而言都是至关重要的,全面采用动态光影将严重限制了这些算法的运用,因为这些算法通常都依赖于静态参数。

对多GPU/CPU的支持

支持CPU多线程跟多GPU的游戏要比以往单核产品复杂许多,而且很容易对其他非多CPU/GPU配置造成不利影响。

CRYSIS的设计需要21KM×21KM大小的游戏区域

Crytek原本计划21KM×21KM大小的全岛无缝地图,但考虑到如此庞大的区域以及CRYSIS的高细节度表现对开发周期、环境的持续渲染以及数据流的处理等等造成巨大的压力,而且无缝带来的好处完全不值得去花费这么大的力气,所以最终采用了像FAR CRY那样的关卡地图,即将整个岛屿切割成为若干区域并分成不同的关卡,最大的关卡地图仍可达到4KM×4KM。

超级远景

支持着色器版本2.0(DX9)到4.0(DX10)

开发从SM2.0起步非常便利,但是早期的DX10硬件根驱动使得SM4.0版本的开发困难重重,整个游戏的开发进度也因此大受拖累。

高动态范围光照

早在NV40时代,CRYTEK就专门为FAR CRY开发了加入HDR效果的补丁并取得了不俗的效果。如今CRYSIS的画面效果自然不愿受到LDR拖后腿。

动态(可损坏)环境

可破坏环境系统可以说是最激动人心的特性之一,但同时也是难以征服的难点之一。

游戏与引擎同步开发

游戏与引擎同步开发造成代码终处于某种可用状态,这对于开发一个小项目来说影响不大,但是像开发CRYSIS这样的大项目就会成为一个不小的挑战。



CryEngine 2技术剖析:shading 系统

全新的shading系统

开发FAR CRY的CRYENGINE 1由于需要支持当时为数不少的GF2级别的显卡,所以除了支持先进的PS/VS可编程渲染管线外仍然保留了对固定渲染管线跟寄存器合成器(register combiner,混合贴图的逐象素解决方案)的支持,这样再加上为支持DX/OGL的复杂材质,CRYENGINE 1的shader编写脚本采用了非常复杂的语法。

在完成FAR CRY的开发工作之后,CRYTEK大幅改写重建了着色系统,其中最主要的举措就是彻底废除了固定功能的渲染管线,并且大大简化了语法。为了进一步简洁引擎,CRYENGINE还废除了对OGL的支持,此举大大提高了shader脚本对FX格式代码的兼容性,开发shader从此也变得更加方便易学。

不同材质的表现结合

总而言之,经过大幅改进之后的CRYENGINE 2 shader脚本系统可以将各种纹理跟多种算术运算结合起来创造出诸如遮蔽、湿润、泥泞或者冰冻等等特殊表面材质效果;这些特效还可以被分割或跟其他诸如金属高光、玻璃材质等常见shader效果混合使用。支持实时逐象素光照、凹凸反射/衍射、容积glow、动画贴图、透明电脑荧幕\窗户、弹孔、反光表面以及其它各种DX10统一着色器架构带来的独特shader特效。

CRYTEK通过创建一个“shader缓存请求列表”的方式大大简化了不同shader间的合成,然后再利用公司内部网络,让公司内所有计算机形成一个小型的分布式计算系统,用于创建shader列表所需的shader编译计算。然而编译仍需耗费大量时间,因此开发人员又通过利用动态分支特性、减少shader合成以及拆分成多个渲染pass等措施来大幅削减shader的编译时间。

高级着色器效果一扫以往游戏人物皮肤的橡皮感、塑胶感

逐象素场景深度计算

CRYENGINE 2引入了一项名为“逐象素场景深度计算”的技术(也叫“基深渲染”Scene Depth Based Rendering),该技术优先计算视点到场景物体表面的深度值(Z值),并将得到的深度值保存起来以供后面的特效使用。由于运用于CRYSIS中的大量特效、渲染技巧,诸如延迟着色、球形雾、容积雾化、阴影映射、阴影遮罩的生成、视察映射、柔和水陆交接线的分离、Z缓冲柔和粒子、以及动态模糊、景深、边缘模糊处理等后期处理特效的运算都需要深度值的参与,提前计算出深度值然后供后面的渲染步骤反复使用能够有效减少shader运算的浪费,大大提高了效率。

渲染场景坐标空间着色系统

在FAR CRY中,CRYTEK将视点跟光照位置转换至切线空间坐标系(相对于表面方向),因此所有的pixel shader数据都是基于切线坐标系,同时也是在该空间中进行计算。但是随着多重光照的运用,该系统开始在传递光照参数上受到限制。为了解决这一问题,CRYENGINE 2改用“渲染场景坐标空间着色系统”,该技术实际上已经被运用于立方体贴图反射特效上,所以代码没有兼容性上的问题,而且着色效果也比原先的切线坐标系空间系统更加准确。



CryEngine 2技术剖析:光影系统

光影系统

FAR CRY采用的光影系统

CRYTEK当年在FAR CRY的室外场景中主要采用了shadow map(阴影贴图/映射) + projected shadow(投射阴影)的方式,其中投射阴影用于室外的太阳光源在物体上的投影,而当时他们面临的最大问题就是阴影边缘难看的锯齿问题,不过在那个时代此举实属不得以而为之。对于植被的投影,考虑到性能问题,他们只能采用预计算的阴影贴图,但另一方面又受到显存容量的限制,只能采用分辨率低下的模糊阴影贴图,效果自然大打折扣。不过在高端硬件上,CRYTEK在植被上使用了阴影映射,但在跟预计算的阴影相结合的时候容易出现问题。

FAR CRY中实时阴影贴图与预计算阴影贴图混合使用

对于点光源,FAR CRY采用了与当时DOOM 3相同的蜡版缓冲阴影(容积阴影),因为容积阴影是更加简单高效的解决方案。CPU蒙皮可以在GPU渲染容积阴影的时候协助为物体的阴影轮廓挑边,但是显然对于细节精细、轮廓复杂的物体CPU将面临重大压力,因此容积阴影的缺陷也是明显的:对CPU蒙皮性能的依赖性、对GPU的负载以及额外的内存带宽需求;而更致命的是:缺乏对半透明物体的支持,这对于需要大量棕榈树和花草灌木等半透明叶子投影的热带岛屿场景是绝对无法容忍的,容积阴影技术给CRYTEK判了“死刑”也就不足为奇了。

更加先进的光影系统

此后CRYTEK仍希望容积阴影能够被用于没有多少半透明物体的室内场景,但是生硬的阴影边缘以及多重光源下的性能损失问题最终让CRYTEK不得不寻找更加合适的光影方案。

CRYENGINE 2的光影系统

对于今天的硬件机能,采用单一简洁的投影系统似乎已经时机成熟。容积阴影由于我们上面提到的种种弊端而惨遭淘汰,CRYENGINE 2彻底抛弃了容积阴影的代码。shadow mapping(阴影映射)能够提供高质量的柔和阴影,并且可以根据实际需要自由调节性能跟画质,因此成为CRYENGINE 2光影系统的不二人选。不过,shadow mapping只能涵盖直接光照部分,对于电影画质所必不可少的间接光照部门则需“另请高明”,因此CRYENGINE 2最终为直接光照跟间接光照分别采用了两套专门的解决方案。

Crysis中完全动态的实时阴影效果一流



热门搜索

手游排行榜

  • 最新排行
  • 最热排行
  • 评分最高