西西手机下载:做最专业最放心的手机软件下载站!
游戏
您当前所在位置:首页 > 游戏攻略 > 单机游戏攻略

crysis_孤岛危机——Crysis深度剖析与优化指南(三)

时间:2023-11-15 01:55  来源:西西手机下载  作者:佚名

  间接光照 (环境光照)

  随着容积阴影与阴影贴图等先进投影技术的引入,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的效果对比

  容积雾、次表面散射3S与HDR

  CRYENGINE 2其他先进特性赏析

  容积化、多层次以及远视距雾化技术

  该技术可以生成笼罩地表的云、雾层,能够自然地模糊远景的可视对比度。此外还可以跟动态光影相结合,减少景物之间的生硬过渡,从而增强大场景的立体自然感。

  次表面散射

  次表面散射(Sub-Surface Scattering),简称3S,主要用于模拟不完全透明材质内部表现出来的一种真实光影特效。我们知道,当灯光照射到玻璃或清澈的液体表面时,灯光会穿透这些介质,3S效果可用来模拟灯光进入介质内部后发生的散射。最典型的就是一根点亮的蜡烛,仔细观察你会发现在烛光的照耀下,蜡烛靠近火焰的那端显出的半透明效果。CRYSIS中3S被广泛运用于植物叶子、冰面等材质上,而实际上,3S的最大用处之一在于表现光源照射下的人物皮肤,换句话说,要想表现真实的皮肤材质,3S效果必不可少。目前的许多游戏在人物皮肤的渲染上就因为缺乏3S效果而显得塑料化、橡胶化,这也许正是CRYSIS中的人物看起来如此逼真的秘诀所在!

  视觉适应和高动态范围光照

  视觉适应是用来模拟人类眼睛碰见突然光线变化的适应情况(如从黑暗室内明亮的室外)。而高动态范围光照可以让场景有更大范围的明暗对比度从而使得画面更真实。

  法线贴图、视差遮蔽映射与3DC

  法线贴图、视差映射和3DC

  法线贴图技术通过计算高细节度模型的法线信息并将其保存在一张高压缩比(3DC/DC5)的法线贴图之中,然后将这张法线贴图贴用于低细节模型上代替原型的多边形曲面的光照计算,从而等到一个低多边形、高细节的3D模型。CE2还支持更高级视差遮蔽映射(Parallax Occlusion Mapping),该技术曾被ATI用于展示R520 强大PS3.0动态分支性能的TOY SHOP DEMO中,目前出了CRYSIS外,还没有其他游戏支持。Parallax Occlusion Mapping是目前效果最好的Bump Mapping技术,能够给予多边形物体表面的贴图更强的深度感,从而令需要高度凹凸立体的浮雕、砖墙等材质更加真实。

  法线贴图的大规模运用虽然让画面一扫过去3D游戏平淡简洁的画面,让整个游戏场景变得凹凸有致、立体感十足,但由于法线贴图存储的信息量比一般的贴图要来得更大,因此对本地显存造成的压力可想而知。显卡的板载显存容量虽然在过去几年里不断翻倍,但仍然满足不了Crysis这样法线贴图数量如此庞大的游戏,为了解决这一问题,Crytek在CRYENGINE 2中全面支持3DC技术。

  Parallax Occlusion Mapping的惊人凹凸细节效果

  法线贴图其实并不是真正的贴图,所以也不会直接贴到物体的表面,它所起的作用就是记录每个点上的法线的方向。法线的3个三维向量X、Y、Z分别对应三原色红绿蓝的颜色,被值保存在一张贴图中,这样的贴图就是所谓的法线贴图。虽然法线贴图不是真正意义上的贴图,但是传统的贴图压缩技术同样对其行之有效。业界使用做广泛、最传统的DXTC纹理压缩技术具有6:1 的高压缩比,有效提高丁硬件资源的利用率,但却不可避免遭遇图像失真的问题。造成图象失真的根本原因还是纹理压缩技术。因为作为一幅贴图来讲,其中绝大部分信息记录的都是每个点的颜色,如果要对纹理进行压缩的话,势必损失掉一些颜色的信息,这样的损失对于普通的贴图来讲影响是非常小的,因为用户绝对不会去在意具体的一个点的颜色是否和原来的纹理保持了一致。但是,对于法线贴图就不是这样了,因为法线贴图中每个点的颜色反映的是该点法线的角度,也就是该点的凹凸的信息,如果这些信息丢失了,带来的结果就会糟糕的多——阴影失真是小,甚至可能造成贴图错误,所以传统的DXTC并不适合用来压缩法线贴图。

  法线贴图制作流程图

  为了解决这一问题,ATI在2004年发布R420显示芯片的时候引入了专门针对法线贴图的3DC技术。跟DXTC不同,3DC将法线贴图分成4×4像素小块压缩,这上面的16个点中分别以红、绿、蓝3个通道的颜色值记录了该点法线的方向,而这个方向恰恰就是该点的凹凸的情况的一个最直观的表达的形式。接下来,3Dc技术将这16个点的颜色值中X项和Y项独立提取出来,分成两个4×4的矩阵,然后再针对每个矩阵进行压缩。通过这种做法,3DC可以以消耗少许shader资源为代价,将每个象素压缩为一个字节,并同时保证足够好的画质。而通常未经过3DC压缩的法线贴图每象素需要占用4个字节的存储空间。在CRYENGINE 2中,纹理的压缩并非向往常那样在loading的时候进行,而是被放在资源编译工具中进行,此举可以减少整个游戏的体积并显著缩短loading时间。而对于不支持3DC的老硬件,Crytek则在loading的过程中将3DC格式的贴图转换为DXTC5格式。


  3DC效果对比

  DX10特效一览

  Crysis曾被用户们戏称为“DX10救世主”,如此响亮的外号体现出用户们对Crysis DX10效果的期待程度。下面我们就一起来看一下CryEngine 2将支持哪些DX10特效。

  高质量的3D海洋渲染技术

  CE2在渲染海面时会根据风力跟洋流的信息即时作出动态调整,因此可以生成非常自然逼真的海面。而“柔和剪裁技术”会在海陆相接的地方根据陆地的高度和海水深度生成自然的海岸线和海床。此外,“焦散模拟技术”还会在海底环境投射效果逼真的动态阴影跟水底光纹。

  为了表现出海面波涛汹涌的效果,CE2采用了屏幕空间坐标系镶嵌技术(Screen-Space Tessellation),该技术可以很好地表现出波涛起伏的效果,但这种效果并非基于真实的物理运算,而仅仅是一个程序化的过程,因此效率非常高。

  光束、光轴

  CRYENGINE 2支持容积光照技术(立体光照),运用此技术用于渲染光线在通过高度遮蔽的环境时(比如茂密的森林)所形成的光束、光轴,还可以用来渲染光透过海面在海底形成的“神圣光芒”效果。

  DX10特效一览(续)

  运动模糊和景深

  运动模糊是用来模拟慢速快门拍摄快速移动的物体或者是快速移动的镜头,以往的运动模糊效果只能做到全屏幕模糊,而运用DX10特性可以对单个物体进行模糊处理。通常的做法是利用几何shader跟踪物体模型边线的运动轨迹,后用渐变的透明度来绘制,以达到运动模糊的那种物体拖着残影的效果。而景深是用于清晰视野焦点而模糊焦点前后的事物。

  动态细节的soft LOD地形管理技术

  在DX10纹理阵列(texture arrays)、绘制断言(predicated draw)、数据流输出(stream out)、低API overhead以及Instancing等特性的帮助下,CryEngine引入了soft LOD技术,可以大幅减低CPU和内存负担,在让近处的物体和地形有不错的细节程度同时,依然可以有长达八千米的视野距离。

  CryEngie其他技术特性赏析 物理系统

  Polybump 2

  Polybump 2可以单独使用也可以同3DS Max之类工具一起使用。这个工具可以快速提取如法线贴图、置换贴图、非闭区域方向和其他一些属性来创建包含高质量的表面描述的扩展信息。这些扩展信息可以用来绘制类似高模品质的低模,但这个速度将会快得多。这些数据储存在文件里,它可以不必再次计算就用多种不同的方法导出。即使是1000万个多边形这样的高多边形数也可以快速完成。

  内置多线程处理物理引擎

  该技术可以让场景里的任何物体,比如树木、植被等模型对诸如风力、爆炸冲击、引力、物体之间的碰撞/摩擦等外力作出互动反应,而且无需专用物理加速硬件的支持。

  高级绳索物理性模拟系统

  绳索物理性模拟技术令柔软的植被、树叶能够对风、雨和角色运动等外力作出自然物理反应。此外,其它诸如吊桥跟外力的互动以及触须之类柔软可弯曲的生物组织的物理性模拟均为高级绳索物理模拟系统的杰作。


  互交的可毁坏的环境

  动态的改变任何环境物件和形状,可以摧毁建筑、树木和其他物体。

  角色动画系统

  新的角色动画系统可以真实的表现人类或者载具动画。完全内置的角色编辑器可以让制作者在CryENGINE Sandbox2里预览动画效果。此外,超级强大的动画图表允许动画设计师对角色动画的状态设置以及状态转换进行可视化操作。

  集成的面部表情编辑器

  强大的全新面部表情编辑工具使用音频波形分析技术自动的同步获取声音并将语音的关键点转化为自然而可信的面部表情和唇型。成熟而方便的多重基于摇杆的用户界面允许使用多种方法直观而快速的被定义和被组合。表情和动画一但被创建,就可以在多个不同的人物模型上运用。在系统的配合下,视频跟踪工具可以用普通的摄象机来捕捉演员的动作,这些运动会在编辑器里直接被转化成想要的面部模型,表情和运动能够同步组合成唇型,可以被动画制作人进一部的处理。

  个性化角色制作系统

  角色制作流水线使用一个丰富的角色特征附件粘贴系统,可以给人物角色粘贴上蒙皮材质、动画信息等数据。此外,还可以将物理信息粘贴到骨架跟人物多边形脸孔上,甚至还允许设计师任意更换角色的身体,比如更换头部、手臂或者上下身。支持硬件加速的人物模型变形系统允许设计师对人物模型网格的变量进行修改。该系统不仅支持手动变形操作而且还可以选用程序化自动生成的样本,以减少内存的占用量。此外还有一个基于着色器的变形系统,可以对泥泞、衣物以及用于皮肤伪装的着色器效果进行变形操作。

  参数化骨骼动画系统

  通过对用户定义的动画样本进行混合,设计师可以对角色的动画进行互动控制,令该角色能够自然合理地根据实际游戏环境改变动画运动。该系统允许角色可以以不同的速度走动;可以在对通道、路径的方向转变作出合理反应;可以作出自然的上、下山运动;可以通过动态混合各种碰撞反应动画来改变角色的移动方式。

  程序化运动变形

  CE2采用CCD-IK,分析IK、样本IK等程序化算法以及物理模拟来增强预设定动画。这些程序法处理方法都是让计算机根据这些算法规定的步骤来计算人物的运动方式。CE2采用了一种运动变形技术来保留原本基础运动的方式,使得原本生硬的计算机生成跟真人动作捕捉混合动画看起来更加自然逼真。

  高质量动画压缩

  CE2采用了关键帧压缩技术,可以根据特定动画所需的保真度动态调节压缩等级。该技术可以在提供高保真度的同时节约至少90%的内存占用量。

  无限创造力:Sandbox 2编辑器概览 1

  集成的CryENGINE Sandbox2编辑器

  运行时间引擎是完全集成在CryENGINE Sandbox2编辑器给了设计者“所见既所玩”特性。

  开发者在开发过程中可以在编辑器中进行实际游戏进行调试

  集成的植被和地形生成系统

  在运行的时候植被会依据如坡度,地表特性等自然特性程序性的生成植被而创建一个可信的自然环境而不用设计师对其每个树木或者草进行调整。植被还会随其地面纹理而改变颜色,使得其和环境更为融合。

  集成3D地表生成及渲染(VOXEL) 技术高级地形系统

  允许设计者在他们的场景里安置悬空的悬崖、洞穴隧道,并控制每个区域的地形细节程度来减少多边形数量。

  流程图

  一个可视化编辑系统允许用户通过连接逻辑单元的入口和出口、定义它们属性和状态来创建事件、触发器和其他逻辑条件。可以让设计者不用写C++代码或者LUA脚本就完成复杂关卡的设计。

  高级的柔和粒子系统和集成的FX编辑器

  可以用次世代的柔和粒子十分简单的创建复杂的爆炸、火、烟和其他特殊效果,其还可以检测同其他物体的碰撞、对风、重力等外力施力或者受力做出反应,并能够对光影互相影响。


以上就是孤岛危机——Crysis深度剖析与优化指南(三)的全部内容了,文章版权归原作者所有,如有侵犯您的权利,请及时联系本站删除,更多相关crysis的攻略资讯,请关注收藏西西下载站。

玩家评论

精品推荐