游戏画面距离电影还有多远?
今天,游戏画面已经进化到了一个非常高的水平。当年玩家们总在期盼的“CG级画面”早就成了现实。每当我向不熟悉游戏的朋友介绍现在的主机和PC大作时,他们都会惊呼“这画面太真实了”。
但是资深玩家又都应该有体会,游戏画面又似乎遇到了一个无法跨越的瓶颈。不管画面多出色的游戏,还是一眼就能分辨出一些充满“游戏感”的特征。
相比之下, CG动画倒是先实现了突破,在光影表现上,已经完全可以做到以假乱真,仿佛真正的实拍电影一样。
这是一只CG渲染的猫猫
这是怎么做到的呢?
1
《玩具总动员4》里有这样一个片段:主角之一的“叉叉”被反派“盖比”欺骗,将芭比当成了朋友,并对芭比无话不谈。可是当叉叉询问芭比到底什么时候自己才会被接走的时候,芭比却对他敷衍了事。
在这个片段当中,画面上出现了一个非常奇特的现象:盖比身后的背景变得虚化模糊了,可是到了叉叉边上,一切又变得清晰了起来。整个画面里,出现了两个焦点。
在不少实拍电影当中,都能看到类似的效果。像是在史蒂芬·斯皮尔伯格的《大白鲨》里面,这个效果的特征特尤其明显。前景里的人物头发都已经虚化了,而背景中落水的角色依然清晰可见。
在现实的电影拍摄中,这种画面使用的是一种叫做“裂焦滤镜”的特殊道具。由于物理上的限制,摄影机的镜头在同一时间里只能清晰地“看”到某个特定距离的画面,比这个画面更近或者更远的景象,都会变得模糊。
裂焦滤镜从中间一分为二,两边是不同的透镜。放在镜头前面,就仿佛同时有两个摄像机镜头,一个在看着近处,一个在看着远处。这样,原本相隔很长一段距离,不能同时对上焦的两个场景,在裂焦滤镜的帮助下,就可以同时清晰地出现在同一个画面当中了。
可是,《玩具总动员4》是一部CG动画电影,没有那么多现实中的限制,让所有画面中的角色都清晰地处于焦内,并不是什么难事。反而是模拟出多重景深的效果,要费上不小的功夫。为什么制作团队要费这么多工夫呢?
因为在单纯的“看清楚”之外,裂焦滤镜画面其实还有另一个非常重要的功能。
大部分人在看到《玩具总动员4》里盖比和叉叉的镜头的时候,可能都不会意识到背后使用的是什么技术,但是肯定能感觉到这种画面里,存在一种非常微妙的不协调感。
于此同时,电影的剧情也正处于一个充满了张力和对抗的节点。在远处的叉叉似乎意识到情况有些不对劲,而近处的芭比看似在和他对话,但是心思却并不完全在他身上。画面中的不协调感和剧情相结合,让这一段显得尤其令人紧张和焦躁。
裂焦滤镜所带来的这种特殊的表现效果,已经超越了这项技术最初的用意,而成为了一种新的艺术表达语言,潜移默化影响观众的观感。因此,在特效合成技术非常成熟的现在,依然可以在诸如《神探夏洛克》这样的影片中见到这种古老的技法。
同时注意左上角的光斑独特的形状,这是库克(Cooke)镜头的特征,观众虽然不会注意到这样的细节,但是会感觉到“这部片有某些经典电影的味道”
在130 多年的历史上,电影导演和摄像师在画面表现上,积累了许多独特的方法和经验,形成了一座丰富的,提升画面表现力的宝库。因此,当CG动画电影在画面表现力上遇到瓶颈的时候,转而学习这些细节技巧,也变得顺理成章。
CG动画向来是游戏画面的先行者和风向标。那么,游戏开发者是不是也可以直从这座宝库里偷师,提升游戏画面的表现力呢?
2
这事没有看上去那么简单。
游戏为了提高渲染速度所依赖的光栅化渲染,实现视觉效果的原理和动画电影完全不同。许多跟光学相关的技巧,在CG动画中应用起来相对会简单一些,但是用在游戏里,成本就会变得非常高昂。
以最基础的镜头为例:许多对摄影摄像感兴趣的人,都应该多少有所耳闻,每一个型号的镜头,都有自己独特的光学特性和成像特点。
一些早年的老镜头,比如俄罗斯产的“太阳神44-2”和奥地利的“匹兹瓦”,焦外虚化的部分会发生旋转,营造出一种迷离而又梦幻的感觉。
现实中镜头的光学特性,是成像过程中的一部分。光线经过镜片的反射与折射,最终抵达摄像机的传感器。这意味着,想要完美还原现实中镜头的特征和缺陷,最好的方法,是通过光线追踪算法来进行模拟。
光线在镜头中要经过多次折射和矫正,不同的设计会形成不同的成像特征。而炫光、高光和景深虚化,也是在这个过程中产生的
迪士尼和皮克斯有一整个团队,专门研究CG动画中摄像机的表现力,而模拟经典镜头就是他们一个重要的课题。在《玩具总动员4》《头脑特攻队》和最近的《心灵奇旅》中,都可以看到这种模拟镜头所带来的魅力。
有一些镜头相对比较好模拟的光学特性,比如炫光(flare)和高光(bloom),甚至景深虚化,在游戏当中其实都存在。但是这一切通常都是在光栅化渲染完成以后,以“后处理(Post Processing)”的形式打补丁,类似在视频软件里,给已经拍摄好的素材添加特效。
炫光可能就是根据光线可能的角度算好位置放一个高亮的贴图,而景深往往是根据物体距离主角的远近,添加不同程度的高斯模糊——这和真正的,基于光线计算的“镜头虚化”完全是两码事。
由于在很长一段时间里,实时光线追踪渲染对于游戏开发者来说都可望而不可即,基于光栅化渲染所设计的景深、炫光等特效,很多时候只能解决“有没有”的问题,经不起仔细的推敲。一旦处理不好,可能还会给画面带来反效果。更复杂精细的镜头特性,也就无从谈起。
不少玩家应该都记得那个滥用高光的“油腻”年代
3
另外一个在电影和CG动画当中时常能见到,但是在游戏中比较难做好的效果,是薄雾和体积光。
在这就还得提一下1982年的《银翼杀手》。这部电影总要被拿来说事,因为它确实是电影画面表现的一个太经典的案例了。在《银翼杀手》出现之前,没有电影在画面上能有这样的质感。而在《银翼杀手》上映以后,所有的科幻片,多少都带一点它的影子。
《银翼杀手》画面的最核心,就是对丁达尔效应登峰造极的运用。所谓丁达尔效应,其实是这么回事:在起雾的大气中,布满了微尘和水珠。如果有光线从雾中穿过,就会照亮这些微尘和水珠,形成类似“圣光”的光线通路。
但是《银翼杀手》独树一帜的,不只是光,更多的是由光照所造成的阴影。阴影的部分会形成通常在画面设计中会被叫做“负空间”。这部分负空间,也存在画面张力,有时甚至比正空间更有力量,但是又往往会被忽视。
95动画剧场版《攻壳机动队》中(上图),素子起床的画面是一个典型的负空间应用范本。而在真人电影版里(下图),光比被削弱,负空间也被消解,画面冲击力要小得多
在《银翼杀手》中,导演莱德利·斯科特有意识将负空间作为画面语言的重要部分。以下面这个镜头为例,画面中人物、桌面和电扇的暗面,加上他们的阴影,整体构成了一个足够有分量的负空间。这个负空间和丁达尔光构成的亮面构成了鲜明的对比。同时,布满房间的雾气又弱化了这种对比,让画面显得特别朦胧梦幻,让观众可以直接感受到人物的迷惘和怅然。
这种画面在游戏中也很难运用。原因很简单:传统的光栅化渲染,对带有一定面积和形状的光源的投影特别头疼,只能是简单粗暴地当作点光源来处理,或者要预先烘焙好阴影贴图。前者投影的感觉总会差点意思,后者则只适合相对静态的场景,一动起来就要穿帮。
为了不让阴影面一面漆黑,还需要再背后添加补充光源,增加AO贴图的细节。再考虑到薄雾带来的散射和光线衰减,想要再光栅渲染里用《银翼杀手》的方式在正负空间上做文章,实在是难上加难。所以游戏中的体积光不少见,但是有《银翼杀手》那种感觉的就要少见得多。
《半衰期:爱丽克斯》里的这个场景其实很接近那种感觉了,但由于游戏不支持光线追踪,本质还是使用了点光源,并用精细的AO贴图辅助,制作起来有很多技术上的细节要考虑
4
在两年前,NVIDIA上市RTX 20系列显卡,首次为实时光线追踪游戏提供可用的硬件支持,之后新一代的RTX 30系列显卡,又将光线追踪的性能提升了一个台阶。在这些新技术硬件的辅助下,一些原本在光栅化渲染中无法应用,或者成本高昂的效果,也可以逐渐在游戏中见到。
这种变化在最简单的游戏里看得最直观。像是去年上市的RTX版《我的世界》,只需要日光的折射和反射,就能把山洞塑造得无比真实。普通玩家,也可以按照自己的方式去塑造光影的感觉。而在传统光栅渲染的游戏里,做出这种感觉,需要专业的场景设计师花费大量的时间和精力,而且很可能换个观看的角度就穿帮了。
在下面这个场景里,如果想在光栅渲染中让屋内的光线随着日光变化,并且投射正确的阴影,通常需要一整套预渲染的全局光照贴图和阴影贴图。而在光线追踪的辅助下,这个步骤直接就省略了。
当然,开启这样的效果对显卡有一些要求。我们内部测试机目前使用的是两款华硕显卡,一个是TUF-RTX3080-O10G-GAMING显卡,拥有8704个流处理器,搭载了10GB GDDR6X显存,核心频率1785MHz—1815MHz。在全金属外壳、三个轴流风扇以的设计下散热稳定。基本上,大部分支持光线追踪和DLSS的游戏,使用这款显卡都能获得最好的画面表现。
而另一款是ROG-STRIX-RTX3090-O24G-GAMING,搭载了24GB超大显存,性能比RTX 3080更加强悍,具备在8K分辨率下运行游戏的能力。我们即将有一个关于这款显卡的视频播出,也欢迎感兴趣的小伙伴们关注。
《赛博朋克2077》作为近期最重头的一部作品,也是光线追踪的应用非常的一个例子。我们前一阵曾经发过一篇文章,研究了这款游戏在开启/关闭光线追踪之后画面表现上的差距和区别。简单来说,这款游戏在开发的时候就设计好用光线追踪效果来提升游戏的画面氛围。
在最高特效,开启光线追踪的情况下,那种氛围感,确实“有那味了”。虽然光线追踪是一项非常消耗性能的选项,但是得益于NVIDIA DLSS等新技术的辅助,游戏的帧数损耗是完全可以接受的。
我们测试的华硕TUF-RTX3080-O10G-GAMING,在开启了DLSS深度学习抗锯齿辅助之后,通过深度学习AI“脑补”出的光线追踪画面,清晰度和细节表现甚至会媲美或超过原生抗锯齿画质,性能也有了很大提升,2K分辨率下稍作调整,就能达到流畅稳定的60帧。
单独拆开来看,开启光线追踪所带来的提升有时不能一眼就能看出来。但是在一款开放世界游戏里面综合起来,确实是两种完全不同的体验。像是霓虹灯、水面反射、人物阴影这些效果,开启光线追踪之后,非常自然地和环境融合,玩家甚至注意不到它们的存在。但是一旦关闭光线追踪,就会发现原来这些效果可以这样突兀,甚至到了破坏游戏沉浸感的程度。
不难想象,这只是一个开始。当游戏行业对实时光线追踪渲染的开发逐渐步入正轨,游戏也终于能像CG动画一样,从电影表现手法的宝库中取经。大的游戏团队可以利用光线追踪提高工作效率, 而小的独立开发者也可以实现过去负担不起的画面表现。
像前面提到的,在光线追踪版《我的世界》里,没有任何建模渲染经验的普通玩家也可以做出比肩职业设计师的场景。而像是去年非常优秀的独立游戏《Teardown》中,开发者用光线追踪算法实现了各种动态光效、软阴影和体积雾。如果没有光线追踪的辅助,开发类似的场景需要大量的预烘焙贴图,还要进行复杂的调试,《Teardown》的开发者就很难负担了。
独立游戏《Teardown》的开发者盛赞光线追踪让复杂的光影效果变得容易
如果有一天,光线追踪的各种效果,像PBR材质一样形成固定的工业流程和范式,游戏的画面细节,也一定会达到一个新的高度。开发者如果想要实现某个电影里的气氛,只需要调好镜头,设置好光源和体积雾,就能可靠地模拟出电影里的效果。
那时,我们距离真正的“电影级画面”的普及,就不远了。