巅峰对决 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效果而显得塑料化、橡胶化。
两个引擎在人物皮肤上的表现都达到了业界的新高,不过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)的方式。其中前者主要用于描绘直接光照效果,而后者则负责间接光照部分。
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缺乏这一技术实在是令人遗憾。
CE2的独门Parallax Occlusion Mapping目前可以说是独步江湖,其创造的凹凸效果不是normal、offset等技术所能比的 巅峰对决 UnrealEngine3 VS CryEngine2 :海洋、水面效果
Unreal Engine 3 VS Cry Engine 2 第四回合:海洋、水面效果
UE3在“水”体方面的表现上并不显眼,仍然停留在象素着色级别,似乎EPIC对于水效果的表现兴趣少少。以致于需要表现逼真水效果的Bioshock不得不自己为UE3额外编写了一个水效果渲染插件。
UE3的水面效果平平无奇,水面的互动效果也非常差,相比之下CE2要出色很多 而背景被设定在四面环海的Crysis则不然,水的表现成了CE2的主要任务之一。CE2在渲染海面时会根据风力跟洋流的信息即时作出动态调整,因此可以生成非常自然逼真的海面。而“柔和剪裁技术”会在海陆相接的地方根据陆地的高度和海水深度生成自然的海岸线和海床。此外,“焦散模拟技术”还会在海底环境投射效果逼真的动态阴影跟水底光纹。 为了表现出海面波涛汹涌的效果,CE2采用了屏幕空间坐标系镶嵌技术(Screen-Space Tessellation),该技术可以很好地表现出波涛起伏的效果,但这种效果并非基于真实的物理运算,而仅仅是一个程序化的过程,因此效率非常高。
UE3的海面更像是波澜不惊的湖面,CE2的海面则将波涛汹涌的效果表达得淋漓尽致 |