第9页:
展开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最终为直接光照跟间接光照分别采用了两套专门的解决方案。