GIPGHDNY

导航

【转】 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的支持。

上面两张截图可以充分说明非全局光照跟“伪”全局光照的巨大差距

posted on 2011-07-22 15:35  胡椒籽籽  阅读(351)  评论(0编辑  收藏  举报