baddy 发表于 2011-10-25 14:47:47

虚幻3+CE2+寒霜+3个强劲引擎对比

这个帖子不知道大家看过没。
看过得不要喷了。
我觉得挺好的,就贴上来。别人给的。
不是原创!
谢谢源作者,虽说不知道你是谁。
1楼开始!
如果版主大大觉得不错,小弟又花费时日整理了下,就给点BB吧~

baddy 发表于 2011-10-25 14:49:27

本帖最后由 baddy 于 2011-10-25 14:50 编辑

虚幻3老了这的确有点不合算 但是配置要求上绝对赢了
感谢OCP_BenTse对虚幻的讲解 CE2的讲解 感谢零蛋对寒霜的讲解 感谢EPIC 感谢卡马克(咳..)感谢crytek 感谢DICE 感谢互联网(有完没完 ORZ。。 )
嗯 于是乎我就这么来混15字了
PS:虚幻引擎讲讲来历 3主要代表作 战争机器 虚幻竞技场3 (主讲)特别画面作品之一镜子边缘 然后再贴点MOH的就完事了 所以虚幻3部分特别少。
好吧 开讲~在ZZT热卖的那段时间,Tim Sweeney将Potomac Computer Systems改名为Epic MegaGames,这不仅让公司在名称上开始出现EPIC的影子,而且规模上也逐渐成长,一系列的EPIC品牌游戏正逐渐露出水面~~EPIC的第二款游戏也是一款青史留名的游戏,说来有趣,从这款游戏开始,Epic就成了id的对头之一。这款名叫《森林吉尔》(Jill of the Jungle)的横板射击游戏发布于96年,恰好是id的《指挥官基恩》(Commander Keen)大红大紫的时候,而id的合作伙伴天极公司(Apogee)也发布了另外一款至今还有人津津乐道的《毁灭公爵》(Duke Nukem)。三款横版过关游戏在市场上杀的刺刀见红,而这款游戏也奠定了Epic在玩家新中的地位。而更有意思的是,在其他游戏都用剽悍的男性当主人公的时候,Epic偏偏选了个女将为主角。还偏偏就火了,而且出了好多版本,其中有一个叫做“Jill Saves the Prince”(Jill拯救王子),明显是要颠覆长久以来的“英雄救美”的模式,而这也表现出EPIC超脱传统的创新理念。 在前两款游戏都取得了不错的反响之后,Epic制作了一批什么Epic弹球、One Must Fall格斗游戏之类的和FPS挨不上边的PC游戏。这段时间持续了2年多,到了1994年之后,当时的id已经是如日中天了,Doom、Doom2、Quake已经火的不行,而此时的EPIC似乎无论是在气势还是技术实力上都远远无法跟其抗衡。不过令人惊讶的是,EPIC在这段时间突然“偃旗息鼓”,难道是自愧不如ID而选择了弃权?!当然这只是不明内里的外行人的看法,而明眼人则很清楚EPIC实际上是在酝酿一款“惊世骇作”!!
果然,在四年后的1998年,EPIC带着一款名为《虚幻》(Unreal)的游戏重新杀回业界,而《虚幻》在当时以其梦幻般的画面震撼了整个业界,不过真正为业界带来革命的却是用于开发这款游戏的引擎——Unreal Engine。从那个时候开始,EPIC的Unreal engine便一举成名,走出幕后成为业界最受欢迎的引擎之一,它打破了原本ID创造的神话,开始与ID的Quake系列引擎一起占据了商用游戏开发引擎市场的半壁江山。也就是从那个时代开始,PC界的两大技术龙头公司你追我赶,在接下来的几年里陆续更新换代他们的产品,并交替成为Engine界的技术领头羊。从此以后,《虚幻》系列游戏跟引擎技术开始成为EPIC的两大看家品牌。 果然,在四年后的1998年,EPIC带着一款名为《虚幻》(Unreal)的游戏重新杀回业界,而《虚幻》在当时以其梦幻般的画面震撼了整个业界,不过真正为业界带来革命的却是用于开发这款游戏的引擎——Unreal Engine。从那个时候开始,EPIC的Unreal engine便一举成名,走出幕后成为业界最受欢迎的引擎之一,它打破了原本ID创造的神话,开始与ID的Quake系列引擎一起占据了商用游戏开发引擎市场的半壁江山。也就是从那个时代开始,PC界的两大技术龙头公司你追我赶,在接下来的几年里陆续更新换代他们的产品,并交替成为Engine界的技术领头羊。从此以后,《虚幻》系列游戏跟引擎技术开始成为EPIC的两大看家品牌。2002年,EPIC推出第二代Unreal Engine,在技术上成功超越ID当时的Quake 3 engine,成为业界新高。不过,随着显卡白热化竞争带来的技术飞速发展,Engine开发商们也被迫急速更新换代,技术上的进步可以说是日新月异,很快除了ID在2004年拿出他们的新一代DOOM3引擎外,原本在引擎技术方面鲜有建树的Vavle也拿出了他们的SOURCE Engine加入竞争,而更加令人大跌眼镜的是以绝对黑马姿态登场的德国游戏开发商Crytek,祭出Cryengine这把引擎神器,其对业界带来的震撼丝毫不亚于当年的Unreal!!一时间在三大巨头的强势压迫下,EPIC不得不让出还没戴稳的engine技术桂冠,市场份额也受到不小的侵蚀。也正是在这样的背景下,促使EPIC不得不加紧开发下一代Unreal引擎,终于,在2005年的GDC上,EPIC向世人宣布他们的第三代Unreal Engine已经蓄势待发,即将重新登上Engine技术领头羊的宝座。EPIC不仅技术上不断进步,而且在商场上打滚多年的它在竞争策略的制定上也变得越来越老练,此时engine界又冒出另一家极具威胁性的公司Artificial Studios,该公司的Reality Engine具有跟UE3叫板的实力,然而现今的EPIC是决不会容忍市场上再冒出一个像Crytek这样年轻力盛的竞争者,于是便及时出手收购,将其扼杀于摇篮中!!
EPIC在UE3发布会上公布的一些演示视频可以说是让玩家们目瞪口呆,相信每个玩家都跟笔者一样期盼着早日能够玩到“Unreal Engine 3 Powered”的游戏,不过UE3之父Tim Sweendy在当时就指出UE3游戏大规模上市还得等到2006年,然而由于种种原因,UE3游戏却始终姗姗来迟,知道2007年的今天才陆续登场。今天,本文将带领各位玩家深入了解UE3背后的强大技术特性,深入解析至今为止所发布的UE3游戏中的两部巅峰之作——《战争机器(Gears of War)》和《虚幻竞技场3》以及与当今另一部超强神作《孤岛危机(CRYSIS)》进行画面、技术PK,并实地测试目前N/A数款流行显卡的实际表现,让玩家了解自己的硬件在UE3中的表现,此外还可以帮助我们预测未来游戏的需求趋势。

baddy 发表于 2011-10-25 15:00:43

虚幻引擎3是一个面向新一代游戏机(PS3跟XBOX360)以及DX9/10 PC的先进而强大的游戏开发平台,它为游戏开发者提供了大量的核心技术、数据生成工具和基础支持。 虚幻引擎3(下文简称UE3)从设计之初就以先进的技术特性以及高易用性、扩展性为目标,其每一个方面都具有比较高的易用性跟扩展性,这是其相比其它商用3D游戏开发引擎的最大优势。UE3尤其侧重于数据生成和程序编写方面,这样的话,美工只需要程序员的很少量的协助,就能够尽可能多地开发游戏的数据资源,并且这个过程是在完全的可视化环境中完成的,实际操作非常便利;扩张性方面,UE3还为程序员提供一个具有先进功能的,并且具有可扩展性的应用程序框架(Framework),这个框架可以用于建立、测试和发布各种类型的游戏。而对于玩家而言,UE3最令人瞩目的特点就在于其先进的技术特性,特别是在图形方面,下面我们就一起来看一下UE3在图形方面有何高明之处: 纵览UE3的先进图形系统,我们大概可以将其分成3大部分来介绍,我们首先来看第一部分。
自从2004年NV40面世以来,FP16精度的HDR就成为最热门、曝光率最高的技术,如今新一代的游戏以不在满足于传统8BIT LDR精度。新一代的虚幻引擎自然也不会弃FP16HDR于不顾,UE3已经全面支持FP16HDR渲染管道(EPIC称其为64位色高动态范围渲染管道),UE3包含一个具备Gamma校正和线性颜色空间功能的渲染器,它不但可以提供完美的颜色精度,同时还支持诸如光晕、动态模糊、景深等各种后期处理特效。
FP16 HDR Bloom高亮效果
UE3的光照系统还支持延迟着色技术(Deferred Shading),该技术可以说是未来游戏的发展趋势,其原理简单点讲就是先把全景多边形物体的信息比如位置、法线面、漫反射贴图、环境贴图等等渲染到一个“巨大”的缓冲区里(G-Buffer),而把打光步骤延迟。这样做的好处一来是可以创建大量的点光源以及产生真实的光照结果,提高画面的真实度;二来是可以避免对不可见的点进行光照,节省了资源;不过,延迟着色并不是很适合DX9,在目前的硬件上必须以牺牲MSAA(多重取样抗锯齿)为代价,而在新的DX10硬件上则没有问题 。值得一提的是,最新版本的UE3已经为DX10做了优化,MSAA已经完全没有问题,但是目前面世的几个采用UE3的游戏都是基于老版本的UE3开发,所以对MSAA的支持还存在各种问题(对于目前的几个UE3游戏,笔者怀疑它们很可能都没有使用延迟着色技术,无法直接打开MSAA可能另有缘由),甚至让部分玩家产生了“缺乏AA就是UE3的标志”这样的错觉……

UE3另一个备受瞩目的地方就是其先进而高效的动态阴影系统,就目前的资料来看UE3支持下列4种投影技术:
1.采用跟DOOM3类似的动态蜡版缓冲容积阴影技术,能够此技术能够让动态光源位为场景中所有的物体上投射出精确的影子。
2.采用阴影缓冲技术为动态物体投射柔和阴影。此技术还应用了SM3.0的动态分支技术来检测阴影边缘需要柔和处理的部分,从而大大减轻GPU的运算量。
3.采用了拥有极高质量和极高性能的预先计算出的阴影遮罩,从而可以将静态光源的交互现象离线处理,同时保留了完整的动态镜面高光和反射效果。
4.方向光映射。此技术只有最新版本的UE3才具备,它允许预先计算出无限个光源对物体的静态投影和漫反射法线映射光照结果,并将该结果保存为一组贴图的格式,这种做法可以为那些需要高速运行的场景创造出大量的光源效果。

以上四种投影技术实现的阴影效果在视觉上都是互相协调相容的,并且可以按照美工的意愿自由混合搭配。此外还可以与有颜色的衰减函数相结合,从而可以真实地表现出诸如方向光、聚光灯光以及投射光等不同光照的投影效果。多种动态、静态投影技术的结合运用可以看出UE3非常注重性能跟画面效果的平衡,在效能可接受的前提下尽量做到画面最佳化可以大幅提高UE3的应用范围,也因此而备受游戏开发商的青睐。

法线贴图(Normal mapping)相信大家都已经很熟悉了,基本上现在画面过得去的游戏多多少少都会用一点法线贴图。该技术简单点说就是通过计算高细节度模型的法线信息并将其保存在一张高压缩比(3DC/DC5)的法线贴图之中,然后将这张法线贴图贴在低细节模型上代替原型的多边形曲面的光照计算,从而等到一个低多边形、高细节的3D模型。虽然它不是什么先进高深的技术,但却可以有效提高画面细节并保证足够的性能。法线贴图的首次大规模应用可以追溯到2004年的Far Cry(在FC中,Crytek为他们的Normal mapping技术取了个别出心裁的名称,叫“Ploybump”),虽然它不是什么先进高深的技术,但却可以有效提高画面细节并保证足够的性能,所以一直到今天都深受欢迎。

UE3中的Virtual Displacement Mapping,也就是我们平时所说的位移贴图(offset mapping/parallax mapping),其原理跟法线贴图类似,不过它还对对纹理坐标进行位移,因此凹凸感更强,更加适合表现表面坑坑洼洼的场景。而如今,UE3对于法线贴图和位移贴图的应用又达到一个全新的高度。从《虚幻竞技场3》(UT3)到《战争机器》(Gear of War),从人物角色到场景环境,Normal mapping跟Virtual Displacement Mapping可以说是无处不在~~两者的大规模结合应用令游戏画面立体感倍增,而且效率极高,几十万的多边型就可以创造出接近1亿多边型的细节效果!!

EPIC还特别为游戏开发者准备了一个分布式计算法线贴图生成工具,可以让美工方便快捷地完成法线贴图的制作。通常在制作一个游戏人物的时候,美工先建立两个版本的网格模型:一个只有几千个多边型的实时演算模型和一个几百万多边型的高细节参照模型。接着使用该工具的分布式计算功能对高细节参照模型进行光线追踪计算,并将其表明光照信息保存为一张法线贴图,最后再将法线贴图覆盖到游戏中的实施演算模型,这样一个几千多边型的低细节模型就能够拥有接近几百万多边型模型的细节度!!不过要表现出精细的细节度,还必须满足一个条件,那就是法线贴图的分辨率必须足够高,这对于显存来说显然是个不小的挑战!Tim Sweendy在UE3首次演示时曾表示,UE3中大部分角色跟场景的普通贴图和法线贴图的分辨率都将高达2048×2048,按照他当时的计划,在2006年左右的中高端显卡因该可以轻松满足这一目标,他甚至预测这一时期的高端卡将配备高达1G的显存!!不过现实却不像他预测中那么乐观,实际上即使到今天,配备1G显存的显卡也只有2900XT唯一一款产品。所以目前面世的几款UE3游戏基本上都存在材质模糊的毛病,硬件达不到要求,开发商只能妥协采用分辨率较低的贴图,所以一些玩家把材质模糊的问题怪到UE3头上是不公平的。

Ageia PhysX驱动下的物理引擎
      UE3的其它先进图形特性还包括:完全支持多核CPU跟多GPU系统;完全支持室内和室外环境的无缝连接,在任何地方都支持的动态逐象素光照和投影; 美工可以通过一个可动态变形的基本高度图来建立地形,并使用多层混合材质,这其中包括位移贴图,法线贴图和任意复杂的材质,动态的基于LOD的细节以及植被;另外,地形系统还支持美工控制的自然效果,如平地上的植被,陡坡上的岩石和山顶上的积雪 ;多屏幕分屏渲染;容积环境效果包括高度雾和物理上精确的距离雾等先进特效。

对于现代的游戏引擎,物理效果的好坏也是决定一款引擎是否优秀的关键因素。在这方面,UE3同样走在业界的前沿。出了支持传统的布娃娃系统(Ragdoll,是目前最为流行的一种非常高级的物理引擎,能够付给物体以一定的质量,形状等特性,从而获得非常逼真的力学动态效果。Half Life 2、Pain Killer等著名游戏均采用了这个物理引擎。

此外,UE3还是第一个Ageia PhysX物理卡的支持者,有了Ageia PhysX的助阵,UE3又将游戏的物理效果提升到一个新的层次,其先进物理特性包括:    刚体物理系统,支持玩家人物和游戏中的物体产生具备真实物理特性的互动,从常见的布娃娃骨骼动画和车辆运动到复杂的物体破坏分解等效果一概俱全。    所有可渲染的材质都含有物理特性,例如摩擦系数等参数;具备物理导向的音效系统;完全整合支持具备完整物理性的车辆,其中包括玩家的操控、AI和网络功能;游戏性导向的物理动画,能够生成根据物理学而产生变化的动画;布料物理运动模拟等等特性~~

巅峰对决 UnrealEngine3 VS CryEngine2 :着色系统/shader特效

      Unreal Engine 3 VS Cry Engine 2 第一回合:着色系统/shader特效

      前面我们介绍过UE3支持当前所有常见的逐象素光照技术,支持法线贴图、位移贴图、光线衰减函数、预计算阴影遮罩、方向光照贴图、参数化phong光照以及使用球形harmonic贴图的预渲染凹凸自体投影技术 。除此以外美工还可以在自定义的材质上使用带各项异效果的逐材质光照模型;而CRYENGINE 2的shader系统跟UE3相比更是有过之而无不及,其shader脚本系统可以将各种纹理跟多种算术运算结合起来创造出诸如遮蔽、湿润、泥泞或者冰冻等等特殊表面材质效果;这些特效还可以被分割或跟其他诸如金属高光、玻璃材质等常见shader效果混合使用。支持实时逐象素光照、凹凸反射/衍射、容积glow、动画贴图、透明电脑荧幕\窗户、弹孔、反光表面以及其它各种DX10统一着色器架构带来的独特shader特效。

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

两个引擎在人物皮肤上的表现都达到了业界的新高,不过支持3S技术的CE2则更加出众一些,已经有点真人的味道了
巅峰对决 UnrealEngine3 VS CryEngine2 :光影系统
      Unreal Engine 3 VS Cry Engine 2 第二回合:光影系统
      我们前面说过UE3的光影系统采用light mapping、动态蜡版缓冲容积阴影技术、预先计算出的阴影遮罩以及方向光照映射等多种光影技术相结合的方式。而Cry Engine 2方面,相比UE3多种投影技术相结合的光影系统,CE2的光影系统要简洁得多,彻底抛弃了高CPU依赖性、高填充率要求以及缺乏对半透明物体支持的蜡版缓冲阴影(容积阴影),而改用shadow mapping(阴影映射)+Screen-Space Ambient Occlusion(屏幕空间环境光遮蔽,下文简称SSAO)的方式。其中前者主要用于描绘直接光照效果,而后者则负责间接光照部分。

巅峰对决 UnrealEngine3 VS CryEngine2 :光影系统
      Unreal Engine 3 VS Cry Engine 2 第二回合:光影系统
      我们前面说过UE3的光影系统采用light mapping、动态蜡版缓冲容积阴影技术、预先计算出的阴影遮罩以及方向光照映射等多种光影技术相结合的方式。而Cry Engine 2方面,相比UE3多种投影技术相结合的光影系统,CE2的光影系统要简洁得多,彻底抛弃了高CPU依赖性、高填充率要求以及缺乏对半透明物体支持的蜡版缓冲阴影(容积阴影),而改用shadow mapping(阴影映射)+Screen-Space Ambient Occlusion(屏幕空间环境光遮蔽,下文简称SSAO)的方式。其中前者主要用于描绘直接光照效果,而后者则负责间接光照部分。

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

      事实上不仅仅是DOOM3,后来发布的Riddick、FEAR、SCCT、Quake 4等光影效果出众的游戏同样缺乏对间接光照的支持。只有HL2采用radiosity Normal Maps技术在一定程度上实现了间接光照,但由于HL2中动态光源太少加上蹩脚的投影技术,最终出来的效果并不出众。而跳票王STALKER也秘密内置了对间接光照的支持,虽然效果比HL2要好许多,但由于性能代价太大以及算法还不够完善等问题而被开发商隐藏起来,玩家只能通过控制台来打开。    虽然今天CE2实现间接光照的做法只是采用SSOA来模拟视觉上的“全局光照效果”,而并非采用光线追踪这样的物理性计算途径实现,不过小编认为这种在当前硬件允许的前提下于视觉效果上成功欺骗玩家眼球的做法,是目前最好的妥协做法。然而令人感到失望的是,目前的UE3仍无法实现“全局光照效果”,希望EPIC能在以后的版本中加入对GI的支持。

巅峰对决 UnrealEngine3 VS CryEngine2 :凹凸贴图Bump mapping
      Unreal Engine 3 VS Cry Engine 2 第三回合:凹凸贴图Bump mapping
      历史悠久的凹凸贴图技术可以有效减少物体建模的多边形数量,极大地提高了硬件的渲染效率,因此是现代先进引擎所必不可少的部分。
      近年来法线贴图大行其道,而在UE3跟CE2中,高分辨率法线贴图更是家常便饭,而双方也都为游戏开发者配备了高效易用的法线贴图生成工具。

normal mapping、offset mapping已经是UE3跟CE2的“家常便饭”除了法线贴图,拥有更强凹凸感的位移贴图(offset mapping/parallax mapping)也越来越受开发者的欢迎,UE3大量运用位移贴图来表现坑坑洼洼的表面,而CE2在这方面则更进一步,支持位移贴图的最高级版本——Parallax Occlusion Mapping。Parallax Occlusion Mapping堪称目前Bump mapping技术的极致,其表现出来的凹凸效果也只有具备真正多边形顶点位移displacement mapping能够超越,目前该技术只有CE2支持,UE3缺乏这一技术实在是令人遗憾。

巅峰对决 UnrealEngine3 VS CryEngine2 第四回合:海洋、水面效果

UE3在“水”体方面的表现上并不显眼,仍然停留在象素着色级别,似乎EPIC对于水效果的表现兴趣少少。以致于需要表现逼真水效果的Bioshock(生化奇兵)不得不自己为UE3额外编写了一个水效果渲染插件。

UE3的水面效果平平无奇,水面的互动效果也非常差,相比之下CE2要出色很多

      而背景被设定在四面环海的Crysis则不然,水的表现成了CE2的主要任务之一。CE2在渲染海面时会根据风力跟洋流的信息即时作出动态调整,因此可以生成非常自然逼真的海面。而“柔和剪裁技术”会在海陆相接的地方根据陆地的高度和海水深度生成自然的海岸线和海床。此外,“焦散模拟技术”还会在海底环境投射效果逼真的动态阴影跟水底光纹。 为了表现出海面波涛汹涌的效果,CE2采用了屏幕空间坐标系镶嵌技术(Screen-Space Tessellation),该技术可以很好地表现出波涛起伏的效果,但这种效果并非基于真实的物理运算,而仅仅是一个程序化的过程,因此效率非常高。

森林植被系统
UE3的植被系统并非自己研发,而是跟UE2一样,继续沿用iveDataVisualization著名的speedtree系统。SpeedTree技术最大的特征就是可以在使用极少多边形的情况下创造出高度逼真的树木和植物,并且可以调整风速效果,使得这些植物随着风的吹动而真实地摇动。这套技术中还有100多种树木模型库可以直接调用。当年上古卷轴4湮灭正是用SpeedTree创造出令人震撼的森林、植被效果!!

SpeedTree技术还包括有SpeedTreeCAD,这项工具让虚幻引擎的使用者可以创造并编辑即时演算的树木的动态效果。SpeedTree技术还将直接结合到虚幻引擎的配布层面中,这样游戏开发者就可以直接在特定地形上生成整个森林,无需将树一棵一棵地设置在相应地点上,大大提高了工作效率。并且通过SpeedTree的代码优化技术,画面上数量繁多的枝叶不会对画面帧数造成太大影响

UE3的speedtree实在让人失望,其表现甚至不如上古4;相比之下CE2的森林显得郁郁葱葱,充满生气
CE2方面,Crytek不喜欢采用别人的技术,而是自己一手包办。而实际上,CE2的森林植被效果相比UE3的ST技术更为出色,无论是效率上还是效果跟ST相比都有过之而无不及!此外CE2还支持实体多边形建模的高细节度树叶,Crysis部分植物的叶子如芭蕉叶就是采用大量多边形建模,因此能够跟周围的物体产生互动。
引用:


贴图树叶似乎仍然是这一代硬件所无法逾越的鸿沟,虽然CE2可以实现多边形树叶,但考虑到硬件性能,游戏中仍以贴图树叶为主流
Unreal Engine 3 VS Cry Engine 2 第六回合:HDR、爆炸火焰、场景规模

自从2004年NV40面世以来,FP16精度的HDR就成为最热门、曝光率最高的技术,如今新一代的游戏以不在满足于传统8BIT LDR精度。毫无悬念,双方都已经支持FP16HDR,UE3已经全面转向FP16HDR渲染管道(EPIC称其为64位色高动态范围渲染管道),UE3包含一个具备Gamma校正和线性颜色空间功能的渲染器,它不但可以提供完美的颜色精度,同时还支持诸如光晕、动态模糊、景深等各种后期处理特效;CE2也同样毫不逊色,将瞳孔对光的反应表现得活灵活现。

双方对HDR的支持都已经相当成熟,而手法上UE3趋向虚幻风格,而CE2则选择了写实路线
UE3用大量的HDR高光来表现夸张的爆炸火焰,而CE2则显得写实得多
场景规模方面,UE系列对大场景的表现向来可圈可点,这一代的UE3更是有了不小的进步,远景LOD管理系统非常智能。在UT3中,我们可以看到占地面积庞大的地图,而且对于硬件的要求并不高;至于CE就更不用说了,当年FC在远景方面的造诣几乎无人能及,而Crytek在CE2中也继续将该卖点继续发扬光大,在DX10纹理阵列(texture arrays)、绘制断言(predicated draw)、数据流输出(stream out)、低API overhead以及Instancing等特性的帮助下,CryEngine引入了soft LOD技术,可以大幅减低CPU和内存负担,在让近处的物体和地形有不错的细节程度同时,依然可以有长达八千米的视野距离

两个引擎都可以满足超大场景的需求,特别是CE2,不仅场景超大,而且细节达到了空前的水平

在其他一些方面,CryEngine2也毫无疑问是业内最出色的案例,而且是遥遥领先,如逼真的景深效果,恰到好处的动态模糊,爆炸后火光用到的DX10柔化粒子等。单就画面而言,Crysis无疑是最强者,而且只需要开到第三个档次High(上面还有Very High和隐藏的Ultra High UH才是真正的孤岛最高效果)就已经获得遥遥领先于其他游戏的效果。

好了 OCP_BenTse对虚幻的讲解 CE2的简单讲解就到此结束了接下来的将是真正的 孤岛危机CE2的讲解

CE2 开始!

酝酿“危机”

“危机”的酝酿

Farcry是Crytek的第一个游戏,其给他们积累了很多宝贵的经验,当Farcry还在开发的时候,Crytek知道这是同Doom 3和Half-life2的一场市场竞赛,世界知名的id Software和Valve的游戏就象两个800磅重的大猩猩,虽然后来事实证明Far Cry本身的优秀质量绝对可以跟它们相抗衡,但当时Crytek还是采取了抢先上市的策略,所以Farcry是个急促的项目,虽然Crytek保证其符合他们自己内部的质量标准,但他们知道如果他们有更多时间就会做得更好。
在2004年Farcry还在后期开发的时候Crysis的开发工作就开始了,Cevat提出要将游戏的丛林地表冰冻起来,将其变成“冰冻的天堂”,这不仅仅是个技术上的问题,还要考虑到剧情的安排。冰冻的丛林的特性不同于一般的丛林,树木和其他物体会由于超低温而更容易碎裂。他们也需要解释丛林为什么会冰冻起来,于是他们就想起了外星人入侵引起环境灾难的剧情。

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

CryEngine 2 技术剖析

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

CRYENGINE 2引入了一项名为“逐象素场景深度计算”的技术(也叫“基深渲染”Scene Depth Based Rendering),该技术优先计算视点到场景物体表面的深度值(Z值),并将得到的深度值保存起来以供后面的特效使用。由于运用于CRYSIS中的大量特效、渲染技巧,诸如延迟着色、球形雾、容积雾化、阴影映射、阴影遮罩的生成、视察映射、柔和水陆交接线的分离、Z缓冲柔和粒子、以及动态模糊、景深、边缘模糊处理等后期处理特效的运算都需要深度值的参与,提前计算出深度值然后供后面的渲染步骤反复使用能够有效减少shader运算的浪费,大大提高了效率
在FAR CRY中,CRYTEK将视点跟光照位置转换至切线空间坐标系(相对于表面方向),因此所有的pixel shader数据都是基于切线坐标系,同时也是在该空间中进行计算。但是随着多重光照的运用,该系统开始在传递光照参数上受到限制。为了解决这一问题,CRYENGINE 2改用“渲染场景坐标空间着色系统”,该技术实际上已经被运用于立方体贴图反射特效上,所以代码没有兼容性上的问题,而且着色效果也比原先的切线坐标系空间系统更加准确。FAR CRY采用的光影系统

CRYTEK当年在FAR CRY的室外场景中主要采用了shadow map(阴影贴图/映射) + projected shadow(投射阴影)的方式,其中投射阴影用于室外的太阳光源在物体上的投影,而当时他们面临的最大问题就是阴影边缘难看的锯齿问题,不过在那个时代此举实属不得以而为之。对于植被的投影,考虑到性能问题,他们只能采用预计算的阴影贴图,但另一方面又受到显存容量的限制,只能采用分辨率低下的模糊阴影贴图,效果自然大打折扣。不过在高端硬件上,CRYTEK在植被上使用了阴影映射,但在跟预计算的阴影相结合的时候容易出现问题。
对于点光源,FAR CRY采用了与当时DOOM 3相同的蜡版缓冲阴影(容积阴影),因为容积阴影是更加简单高效的解决方案。CPU蒙皮可以在GPU渲染容积阴影的时候协助为物体的阴影轮廓挑边,但是显然对于细节精细、轮廓复杂的物体CPU将面临重大压力,因此容积阴影的缺陷也是明显的:对CPU蒙皮性能的依赖性、对GPU的负载以及额外的内存带宽需求;而更致命的是:缺乏对半透明物体的支持,这对于需要大量棕榈树和花草灌木等半透明叶子投影的热带岛屿场景是绝对无法容忍的,容积阴影技术给CRYTEK判了“死刑”也就不足为奇了。

更加先进的光影系统

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

CRYENGINE 2的光影系统

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










baddy 发表于 2011-10-25 15:02:27

随着容积阴影与阴影贴图等先进投影技术的引入,3D游戏中的光影效果在过去几年里有了翻天覆地的改进。尽管如此,几乎当前所有的游戏在光影处理上都存在一个重大缺陷——那就是缺乏对“间接光照”的表现。比如当年以出色的光影效果而闻名的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有了显著的提高。

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

视觉适应是用来模拟人类眼睛碰见突然光线变化的适应情况(如从黑暗室内明亮的室外)。而高动态范围光照可以让场景有更大范围的明暗对比度从而使得画面更真实。法线贴图技术通过计算高细节度模型的法线信息并将其保存在一张高压缩比(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技术。

法线贴图其实并不是真正的贴图,所以也不会直接贴到物体的表面,它所起的作用就是记录每个点上的法线的方向。法线的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格式。


baddy 发表于 2011-10-25 15:03:28

在BOSS来回扫射中,发了一半多。图图都不在。
晚上回去编辑上图。。
不好意思
如果发现没用。就删掉把啊~

伥茫 发表于 2011-10-28 22:01:21

太长没人回复吗?带图就好看多了

xingwenlian 发表于 2011-12-16 13:43:56

恩 恩 说的还不错 ~~~
页: [1]
查看完整版本: 虚幻3+CE2+寒霜+3个强劲引擎对比