触乐网
《玩具总动员4》里有这样一个片段:主角之一的叉叉被反派盖比欺骗,将芭比当成了朋友,并对芭比无话不谈。可是当叉叉询问芭比到底什么时候自己才会被接走的时候,芭比却对他敷衍了事。在这个片段当中,画面上出现了一个非常奇特的现象:盖比身后的背景变得虚化模糊了,可是到了叉叉边上,一切又变得清晰了起来。整个画面里,出现了两个焦点。
在现实的电影拍摄中,这种画面使用的是一种叫做“裂焦滤镜”的特殊道具。由于物理上的限制,摄影机的镜头在同一时间里只能清晰地“看”到某个特定距离的画面,比这个画面更近或者更远的景象,都会变得模糊。
可是,《玩具总动员4》是一部CG动画电影,没有那么多现实中的限制,让所有画面中的角色都清晰地处于焦内,并不是什么难事。反而是模拟出多重景深的效果,要费上不小的功夫。为什么制作团队要费这么多工夫呢?
因为在单纯的“看清楚”之外,裂焦滤镜画面其实还有另一个非常重要的功能。大部分人在看到《玩具总动员4》里盖比和叉叉的镜头的时候,可能都不会意识到背后使用的是什么技术,但是肯定能感觉到这种画面里,存在一种非常微妙的不协调感。
与此同时,电影的剧情也正处于一个充满了张力和对抗的节点。在远处的叉叉似乎意识到情况有些不对劲,而近处的芭比看似在和他对话,但是心思却并不完全在他身上。画面中的不协调感和剧情相结合,让这一段显得尤其令人紧张和焦躁。
裂焦滤镜所带来的这种特殊的表现效果,已经超越了这项技术最初的用意,而成了一种新的艺术表达语言,潜移默化影响观众的观感。因此,在特效合成技术非常成熟的现在,依然可以在诸如《神探夏洛克》这样的影片中见到这种“古老的技法”。
在130多年的历史上,电影导演和摄像师在画面表现上,积累了许多独特的方法和经验,形成了一座丰富的,提升画面表现力的宝库。因此,当CG动画电影在画面表现力上遇到瓶颈的时候,转而学习这些细节技巧,也变得顺理成章。
CG动画向来是游戏画面的先行者和风向标。那么,游戏开发者是不是也可以直从这座宝库里偷师,提升游戏画面的表现力呢?
这事没有看上去那么简单。游戏为了提高渲染速度所依赖的光栅化渲染,实现视觉效果的原理和动画电影完全不同。许多跟光学相关的技巧,在CG动画中应用起来相对会简单一些,但是用在游戏里,成本就会变得非常高昂。
现实中镜头的光学特性,是成像过程中的一部分。光线经过镜片的反射与折射,最终抵达摄像机的传感器。这意味着,想要完美还原现实中镜头的特征和缺陷,最好的方法,是通过光线追踪算法来进行模拟。
由于在很长一段时间里,实时光线追踪渲染对于游戏开发者来说都可望而不可即,基于光栅化渲染所设计的景深、炫光等特效,很多时候只能解决“有没有”的问题,经不起仔细的推敲。一旦处理不好,可能还会给画面带来反效果。更复杂精细的镜头特性,也就无从谈起。
另外一个在电影和CG动画当中时常能见到,但是在游戏中比较难做好的效果,是薄雾和体积光。
在这就还得提一下1982年的《银翼杀手》。这部电影总要被拿来说事,因为它确实是电影画面表现的一个太经典的案例了。在《银翼杀手》出现之前,没有电影在画面上能有这样的质感。而在《银翼杀手》上映以后,所有的科幻片,多少都带一点它的影子。
《银翼杀手》画面的最核心,就是对丁达尔效应登峰造极的运用。所谓丁达尔效应,其实是这么回事:在起雾的大气中,布满了微尘和水珠。如果有光线从雾中穿过,就会照亮这些微尘和水珠,形成类似“圣光”的光线通路。但是《银翼杀手》独树一帜的,不只是光,更多的是由光照所造成的阴影。阴影的部分会形成通常在画面设计中会被叫做“负空间”。这部分负空间,也存在画面张力,有时甚至比正空间更有力量,但是又往往会被忽视。
在《银翼杀手》中,导演莱德利·斯科特有意识将负空间作为画面语言的重要部分。以这个镜头为例,画面中人物、桌面和电扇的暗面,加上它们的阴影,整体构成了一个足够有分量的负空间。这个负空间和丁达尔光构成的亮面构成了鲜明的对比。同时,布满房间的雾气又弱化了这种对比,让画面显得特别朦胧梦幻,让观众可以直接感受到人物的迷惘和怅然。
这种画面在游戏中也很难运用。原因很简单:传统的光栅化渲染,对带有一定面积和形状的光源的投影特别头疼,只能是“简单粗暴”地当作点光源来处理,或者要预先烘焙好阴影贴图。前者投影的感觉总会差点意思,后者则只适合相对静态的场景,一动起来就要穿帮。
为了不让阴影面一面漆黑,还需要在背后添加补充光源,增加AO贴图的细节。再考虑到薄雾带来的散射和光线衰减,想要在光栅渲染里用《银翼杀手》的方式在正负空间上做文章,实在是难上加难。所以游戏中的体积光不少见,但是有《银翼杀手》那种感觉的就要少见得多。
在两年前,NVIDIA上市RTX 20系列显卡,首次为实时光线追踪游戏提供可用的硬件支持,之后新一代的RTX 30系列显卡,又将光线追踪的性能提升了一个台阶。在这些新技术硬件的辅助下,一些原本在光栅化渲染中无法应用,或者成本高昂的效果,也可以逐渐在游戏中见到。
这种变化在最简单的游戏里看得最直观。像是2020年上市的RTX版《我的世界》,只需要日光的折射和反射,就能把山洞塑造得无比真实。普通玩家,也可以按照自己的方式去塑造光影的感觉。而在传统光栅渲染的游戏里,做出这种感觉,需要专业的场景设计师花费大量的时间和精力,而且很可能换个观看的角度就穿帮了。
此外,如果想在光栅渲染中让屋内的光线随着日光变化,并且投射正确的阴影,通常需要一整套预渲染的全局光照贴图和阴影贴图。而在光线追踪的辅助下,这个步骤直接就省略了。
当然,开启这样的效果对显卡有一些要求。《赛博朋克2077》作为近期最重头的一部作品,也是光线追踪应用的一个例子。
单独拆开来看,开启光线追踪所带来的提升有时不能一眼就能看出来。但是在一款开放世界游戏里面综合起来,确实是两种完全不同的體验。像是霓虹灯、水面反射、人物阴影这些效果,开启光线追踪之后,非常自然地和环境融合,玩家甚至注意不到它们的存在。但是一旦关闭光线追踪,就会发现原来这些效果可以这样突兀,甚至到了破坏游戏沉浸感的程度。
不难想象,这只是一个开始。当游戏行业对实时光线追踪渲染的开发逐渐步入正轨,游戏也终于能像CG动画一样,从电影表现手法的宝库中取经。大的游戏团队可以利用光线追踪提高工作效率,而小的独立开发者也可以实现过去负担不起的画面表现。那时,游戏画面距离真正的“电影级画质”的普及,就不远了。
如果有一天,光线追踪的各种效果,像PBR材质一样形成固定的工业流程和范式,游戏的画面细节,也一定会达到一个新的高度。开发者如果想要实现某个电影里的气氛,只需要调好镜头,设置好光源和体积雾,就能可靠地模拟出电影里的效果。