文章转载至Digital Foundry,来源:【网页链接】
《赛博朋克2077》中的光线追踪让我感到很是惊艳,无论是大大小小的细节还是其为整体世界与人物带来的真实感,今天的视频我会深入地讲讲光线追踪会对《赛博朋克2077》的画面带来哪些影响,并希望能够让作为观众你们更好的体会到在游戏中实时光照的重要性。为此我将在相同的场景下对比在其他特效拉满的前提下光追开关的区别。
所有这些光线追踪方案结合在一起的视觉效果绝对高出光栅化许多,而我认为最能体现出这一点的是在前期与Dex见面,在这一场景中,时间为傍晚,街道上还能看到一点太阳,但大部分场景基本都处于摩天大楼的阴影下,过场动画在一辆封闭的车内,只有一扇窗户,和我们之前看过的棚屋很像,对于非光追实时全局光照来说可以说是很难渲染的。基本上这辆车在街道上游走,在不同的光照探针之间来回切换,因此车内饰由外部的光照照亮,并且随着车辆移动不断更变新的探针。并且还有很多像是Dex的义体,金链子,眼睛那样的光泽表面它们都是面向镜头的,因此在这一视角下屏幕空间反射是没有用的,大多数着色都是以立方体贴图实现的。在开启光线追踪后我认为这一场景瞬间上升了一个世代的水平,我所提到的问题都不存在了,由探针引起的诡异发光现象不见了,只有窗户外小小的开口允许室外的直接光照照射进来同时还多出了一些额外的阴影,进一步Dex身上的义体看上去不再像发光的塑料壳了,因为他们反射的是车内的内容,而不是什么立方体贴图。PC版以外的所有版本都是左边这个画面,只是分辨率与特效可能更低一点。我认为在PC上光线追踪确实使得整个游戏看上去都不同了,而这只是其中一个例子。而下面我将向你们讲解一下它们具体是哪一些光线追踪方案。
光栅化的标准技术
《赛博朋克2077》所使用的标准的那一套画面技术都是现代游戏中很常见的,像是屏幕空间环境光遮蔽,光栅化的点光源与面光源,以及一个基于网格的探针光照系统用在其实时光照中的全局光照上,也就是说与线性游戏不一样,是没有烘培光照的,《赛博朋克2077》使用的是实时光照与阴影,正如我之前《光环:无限》那期视频所提到的,实时光照对开发者来说意味着高效率与迭代优势,但同时也更加吃性能,而在间接光照与反射光照上更是如此。光线追踪能够很好的解决实时光照带来的问题,而《2077》则用了好几种方案。
光栅化与光线追踪的对比
我们先从基本的直接光照开始,如我之前所说到的,《2077》世界中的人工光源有着实时的点光源与面光源,但因为用的是光栅化技术,因此是有局限性的。像是这个V居住的公寓中有这样一个场景,椅子上方有着一道面光源,面光源意味着光照来自一片区域,而不是某个无限小的点,也就是这一长方形的光源。而这样的面光源只是光栅化的话是无法正确投射出阴影的,如此可见左边的画面中光源是没有投影的,你还可以看到这一面光源漏光都漏到椅子下面去了,在光栅化游戏中这样的问题都很常见,不是每一个光源都可以正确的投影,这使得这个椅子看起来好像是浮在空中似的,与场景格格不入。在打开《2077》中的光线追踪自发光光照后就有了变化,使得这整个面光源都能够发光,以及能够投影的真实光照,现在椅子下的区域有了正确的阴影,也没有漏光的问题了,同时整个房间的色调变得也更加黄,因为这一光照不再是单纯的模拟面光源的效果。
在像是这个户外场景下光栅化则是完全没有面光源,光栅化下的面光源是很吃性能的,而像是《2077》这样的大型复杂开放世界,性能预算是有限的,因此会限制一个场景内光栅化光源的数量,同时美术师还需要亲手花时间来将这些光栅化光源贴到灯具上,可能美术师整半天位置还没对上,而光线追踪则是将这一过程自动化,任何有着自发光纹理的表面都能够发光,不需要任何美术师来设置。因此可以加上更多的光源,像是这个场景在相比之下现在这一广告牌能够正确的投射光线,同时这一光照还能够跟着广告牌上的动画实时变化,仔细观察你还能够看到这些光线前面的物件还多了一些软阴影。哪怕有充足的性能以及开发时间来将这些假光源贴在广告牌上,这样的软阴影在光栅化下也是不可能实现的。
再比如说这个场景,光栅化下的面光源是无法投影的,因此使用了屏幕空间反射与屏幕空间环境光遮蔽这样的技术来营造出这些人物有投影的感觉,但结果不是很理想,两个人物看起来都像是浮在空中,光线追踪带来了软阴影以及来自面光源适当的反射遮蔽,而在有了正确的阴影后,这也使得人物模型能够更好的与游戏场景融合在一起,这是很小的一个区别,但对游戏的整体真实感有些深厚的影响。
除了人工光源这样的直接光照以外,我们还有着来自太阳与天空的直接与间接光照,在光栅化阴影下的小巷的光照是由间接光照探针以及像是SSAO和SSR这样的屏幕空间特效来处理的,因此这一场景中的探针光照捕获的是天空的颜色信息,并将它洒在这一小巷的所有表面上,不过这毕竟只是探针光照,因此它"洒"的方式是没有方向性的,所以这一场景中从天空洒下来的光照看上去像是从四面八方射过来的,而SSAO和SSR正在努力试图补救这一无方向的光照并将物件融入在场景内,但它也是有极限的。开启光线追踪后整个天空就是一大块自发光面光源,就像是一个巨型蓝色霓虹灯,并为这一光照带来了方向性,这些水泥板凳现在能够在天光的照射下投影了,这样尽管没有直接光源,阴影与光照也是可以有方向性的。像是在左边的画面中水泥板凳上的柳钉完全一团黑,在开启了光线追踪后则有了适当的光影。
在此之上将光线追踪光照调到最高后还有额外的一层光线追踪全局光照效果,有助于改善一些标准全局光照的效果,并加上了少许光线弹射效果,我们先从这里坐着两个人的板凳开始对比。在光栅化下这个板凳带点探针光照从天空中捕获的蓝色信息,在板凳下面还有这一点反射的黄色太阳光,整体上光栅化还是有着之前提到的同一个问题,像是人物这样的动态物件看起来像是浮在空中。在光线追踪开启后则变得截然不同,太阳打在街道上的局部漫反射光引用在了模型的前面部分上,将它们照成了黄色,这一黄色反射光又再次投射出阴影,因此板凳后面的区域与板凳上的人物有了阴影。而反射光的颜色不一定总是太阳光的颜色,同时也可以是反射表面的颜色。
光线追踪除了光照当然还有反射,同时也是光照的一部分,但大众都认为光照与反射是分开的,我已经做过很多期光线追踪反射相关的视频了,那么我就再讲一次吧。首先是它能够使光泽的表面更好的融入场景中,像是这一扇门,在光栅化下其反射基本上就是张立方体贴图,因为在这个角度下屏幕空间反射无法捕获到应有的信息,在开启光线追踪后门上有了反射,立即就融入了周边较暗的环境,使得这扇门在这一场景中更加真实。
光线追踪反射的另一个优势便是带来了镜面光照,像是此处的电梯里,在光栅化下这一电梯光照主要来自黄色的灯,尽管还有那么大一扇透光的玻璃,打开光线追踪后自发光天空光照与反射结合在一起营造出了完全不同的观感,黄色的光也并没有消失,只是外面的光照要亮的多。
除此之外就是平常的那一套了,像是反射屏幕外的内容,替代立方体贴图与SSR以大幅度改善反射质量,对车辆反射很有帮助,考虑到夜之城的雨下的很频繁,对地面上的水坑也是很有用的。与其他的一些光线追踪游戏不同,《2077》中的反射距离很远很远,在这个场景中没有光线追踪的话,就只是一张模拟摩天大楼的低分辨率立方体贴图,在开启光追后,几公里外的大楼也能够很好的反射出来。
《2077》中的光线追踪反射更好的一点是像是玻璃这样的透明物件也可以反射。这个场景在光栅化下,商铺的玻璃上只有着一层基本的立方体贴图,无法表现出玻璃正常的反射,这玻璃彷佛不存在似的,在开启光线追踪后顿时焕然一新,几乎完全镜面的反射包裹在玻璃上。
我要讲的最后一个光线追踪特效是来自太阳与月亮的光线追踪阴影,我在之前的视频也提到过很多,在这款游戏中也有着同样的亮点,光追阴影还能够轻易的表现出阴影的不同锐度,这一场景在光栅化下远景中电塔的阴影与近距离的垃圾与杂物有着相同的锐度,切换至光追阴影,电塔的阴影真实地变得模糊,但地上垃圾与杂物的阴影却又非常的锐利,因为阴影与投射阴影的物体距离很近。
其他常见的优点在这一场景中体现了出来,阴影贴图分辨率过低无法还原出地面上这些植被的细节,即便在最高画质下也是如此,并且由于视角与这些植被的垂直高度,屏幕空间阴影也无法正确的运作,再切换到光线追踪阴影,就正常许多了,这也进一步说明了屏幕空间阴影无法在所有角度下还原出较小的细节。