现代游戏里,物体的影子已经是随著游戏里的光源实时变化了啊,英伟达出的这个技术有什么特别之处吗?为什么要出一个游戏里已有的功能呢?


其实我勉强作为半个业内人,有时候也经常会有类似的疑问。

这个问题分两个部分来看:

对于游戏行业来说,我的看法是,画面提升不显著。我在另一个答案里面已经说过,实时渲染发展到现如今的地步,已经出现了比较明显的边际效用,即单位算力能够提升的视觉效果已经越来越小。即使我作为一个图形程序员,如果不逐帧去分辨,或者通过阅读各个会议上各家的分享,也很难分辨近几年3A大作在视觉效果上的细微差异,若是抛开动画技术的演进,单看静帧画面更是如此。

上面我挑了五款以画面见长的3A大作,依次是《教团1886》,《神秘海域4》,《地平线:零之黎明》,《底特律:変人》,《死亡搁浅》,发布日期按照15~19年排序,其中《地平线:零之黎明》和《死亡搁浅》使用的是相同的游戏引擎,抛开游戏画风的不提,你能够轻易地说出哪一款游戏画面更好吗?

实际上,近几年游戏引擎的发展更多的侧重于引擎的性能提高、架构和工具链的易用性,图形方面并没有太多巨大的进步:已有的技术已经能够解决大部分问题,不能实时解决的问题可以通过预计算解决,实在不行美术还可以在场景设计的时候想办法规避。就像题主说的,像是实时光影已经早就比较好的解决了,那RTX在游戏方面有什么厉害之处呢?两个方面:一是针对现有实时技术的改进,比如提升传统阴影、AO(环境光遮蔽)、反射方法的效果,比如下面这个SSAO和Ray traced AO的效果对比:

可以看出Ray traced AO对于较远处的遮挡物表现更好

二是使得离线演算法变成实时或者半实时演算法成为可能性,提高游戏制作者的生产力,比如基于GPU的烘焙器能够比CPU的烘焙器快数十倍,这个差异是很大的。现代3A大作对游戏内容的丰富度要求越来越高,生产力就意味著更少的时间制作出更多的可游玩内容。

其他行业来说,RTX ON意味著制作成本的降低和更多的可能性,比如影视行业和建筑设计行业,从前需要数千台渲染农场搞定的渲染场景,现在只要数百台机器,对于那些对画质要求稍低一些的作品,甚至一台RTX显卡的机器就能够满足。这也使得原本为游戏设计而生的游戏引擎能够更多地服务于这些行业,近年来Unreal引擎新的粒子系统Niagara,新的物理系统Chaos,对于动画系统的改进,以及最近收购人脸捕捉的技术公司Cubic Motion,都能体现出它对于这些行业的野心。除了游戏引擎外,Adobe,Autodesk这类传统的设计软体公司也在积极利用RTX技术改进传统制作流程。

总的来说,我觉得RTX带给观众/玩家看不见的提升要远远多于看得见的提升


(部分图片来自网路,侵删)

当然不是只影子的事儿了,当然,如果你把水面反射到的东西、镜子里的东西也叫影子的话,那当我没说。

举个最简单的例子,光追卡刚上市的时候,只有一款游戏支持光线追踪,当时就有一个经典截图

可以看到,你不开光线追踪也会有反射,但是他反射的东西与周边环境无关,这个反射是假反射,当然也不是单纯的假反射,只是有限的真反射,这个一会细讲。

我们从这个图中可以看到,左边有一团火,火焰在游戏中渲染是挺消耗资源的,以往的游戏没有光线追踪,所以辐射无法正确的反射出这团火,这团火发出的光也无法正确的照亮周围的场景。

在理解这一点之前,我们先来理解一下什么叫反射。

根据初中物理,反射的入射光线和出射光线与法线的夹角相等。

红线是光线,黄线是法线,法线与物体表面垂直,这个时候,角a与角b相等。这叫入射光线和出射光线与法线的夹角相等,很多人会有一个错误认识是认为反射光线入射光线之间的夹角是90度,这是错误的,我甚至在我们做3D的人中发现过此类问题。

如果我们有红绿蓝三条入射光线,它们分别会向哪个方向反射呢?

大家可以自己想著画一下,应该是怎样的。

正确的应该是这样

红的来红的去,绿的来绿的去,蓝的来蓝的去。

两个红角相等,两个绿角相等,两个蓝角相等。我画的分别是红60度,绿40度,蓝20度,没有哪两条出入射光线之间的夹角是90度的,也就是没有哪两条出入射光线是垂直的。我没画出来的角中,只有45度的两条光线之间的夹角是90度垂直的。

如果我们有一个光源d,我们通过镜面物体表面可以看到光源的一个反射的虚像,因为反射的原理决定了,你在不同的位置看这个反射,反射虚像的位置虽然不会变,但在物体的表面会发生位移。

当你观察的点从a点移动到b点,反射的图像就会从a』移动到b』位置。

这说明了什么呢?说明了你在不同的位置看到的反射是不同的,或者你往物体的不同表面看到的反射也是不同的。假如这面镜子不是这么大,只在b』位置有很小一块,那么你就只能在b看到光源的反射虚影,而在a位置就一定看不到

假如镜子就只有白线那么大,那么就只有在b点附近才能看到反射的光源,而在其他位置都看不到。

如果天上有一朵云(原谅我的灵魂画法,我懒了,直接用的Win10的截图工具),地上有一面镜子,镜子只有那么大,你通过镜子能看到的就只有橙色那一半,黄色那一半是不能通过镜子看到的。

好,光的反射这部分我们了解了,下面我们来讲下光线追踪是怎么回事。

最早的游戏,因为硬体太弱,在模型上只能贴最基本的贴图,连反射都不能有,比如最早的CS

图片出处见水印,侵删

从这张图片上可以看出来,物体只有最基本的贴图,没有任何质感,很假。

后来人们发现,显卡强一点了,但还是达不到能有漂亮的反射的地步,但有些东西是要反射的,所以呢,就在贴图上画反射,画完了再贴回去。如果玩过手游戏和平精英的,可以自己试一下,带没有皮肤的一级头,然后你去跑,转视角,你会发现那个头盔也会有反射,但是这个反射就不对,为什么呢,他不管在哪儿,你的视角如何,他反射的东西是一样的,全是树林,就算你在城区也是一样。很久没玩了,不知道改了没有,大家可以试试。

你不管走到哪儿,这个反射都是不变的,他自己本身是一个小动画,你不管在哪儿,这个动画都有一栋楼和一圈树。

再后来人们发现显卡又强一些了,可以计算一些反射了,但是还是不能计算全部的反射,只能计算一些简单的镜面反射,模糊反射还是计算不了,而且,传统光栅化渲染只能渲染场景中相机看得到的部分,而看不到的是无法出现在反射中的。

NV的实时光线追踪是把原来的光栅化转为光线化,让不出现在画面中的物体也能实时影响到画面中的物体。

有过室外摄影经历的,或者拍过婚纱照艺术照的朋友应该会对反光板有体会,可以拿来理解

总之,光线追踪就是为了实现真实的反射。

除了反射更真实外,也会使影子变得和原来不一样。

右 边人物背后因为被人挡住了,所以更暗,人物面部也因为正确的光照而显得更立体更有质感。

也就是说虽然都是影子,但影子和影子也不一样,光线追踪下的光影更加丰富与真实。

除了会让影子更真实外,还可以让光线的传递更加真实,我们可以想像一下白天的时候,室内并没有开灯,但却也能让我们看清楚东西。以往的全局光照并不能真实的照亮场景,而光线追踪可以让室内也充满光线。

也可以说是让阴影有更丰富的变化,更透气。

总结来说,实时光线追踪带给我们的是革命性的变化,它让光影更真实,也让游戏画面更加真实,给我们带来更强的沉浸感。这项技术是必然的发展趋势,现在不但NV家的显卡支持实时光线追踪,AMD家的显卡也将会支持,并且Xbox、Playstation等主机也都将支持这项技术。甚至有很多3D渲染软体也在利用这项技术带来的好处。虽然目前的光追显卡效能还不高,但在可预见的未来这项技术一定会被发扬光大,再过几年,我们一定会玩上更多更好玩的光追游戏,甚至到那个时候可能没有人能接受不支持光追的游戏了。


原理上@&李响& 的回答说得很清楚了,这里补充说一下「影子」。

传统游戏的光影效果是模拟而已,很死板的,很多效果并不能完全实现。

不同形状的光源,不同距离的光源,不同角度的光源,不同颜色的光源,移动的光源,多个光源,不同形状的物体…在我们现实中都是不同的。但游戏里面几乎都是一个效果。原理就不解释了,学过高中物理的都应该知道,没学过的自己日常观察也不难吧?

贴个官方的视频,自己感受一下:

nVIDIA的光线追踪演示视频木头龙的视频 · 1.5 万播放

如果你对游戏的相关图形技术有所了解,应该会知道游戏画质已经很久没有实质上的提高了。PS3/Xbox360时代开始出现的法线贴图、环境光遮蔽、动态光照、体积光等,当今依然是提升游戏画质的法宝。时至今日,游戏的建模越来越精细,贴图越来越高清,但观感上始终和电影特效有著天堑般的落差。

NV放出的使用大量光线追踪技术的《星战》Demo,实时渲染画质接近电影级,然而这并不是游戏

游戏画面已经多年止步不前?

在谈论光线追踪技术普及之前,我们先来了解一下当前游戏相关的图形技术,说说为什么光线追踪能给游戏画面带来本质上的提升。

目前的游戏让3D图形呈现在玩家面前,所使用的技术叫「光栅化」。光栅化是一个比较抽象的概念,大家可以简单理解为3D图形的2D化,将3D模型拍扁了,就变成2D了——我们在显示器看到的画面是2D的嘛。游戏进行3D建模(矢量图形)后,将模型投射到屏幕的2D像素点上(光栅化),3D矢量图变成了2D的点阵图,这就是大家在显示器看到的画面。

光栅化的简单示意图,将3D空间的矢量图形投射到平面上,成为2D栅格点阵图

在这个过程当中,矢量图形变为栅格点阵图,点阵图大小以像素点数量来衡量,因此解析度越高、处理越复杂(例如抗锯齿)对显卡光栅单元ROPs要求越高。因此大家可以观察到,ROPs比较少的显卡,在高解析度和高倍抗锯齿下跑游戏,性能不尽如人意。

要让游戏画面变得逼真,除了建模精准以外,还需要明暗/颜色精准,不然画面就只是白花花的一片剪影,谁也看不出那到底是啥。而游戏画面的著色,是在Raster Operations也就是光栅操作过程当中完成的。在光栅化的过程当中,会为2D图像的像素分配额外的信息,例如深度、颜色等等,接著显卡再根据这些信息给像素进行渲染上色,最后我们就可以看到立体的图像了。

一个简单的渲染流程示意图:确定3D顶点→3D建模→光栅化→像素著色→2D图像

换言之,游戏画面的光栅化渲染著色,大致相当于是以3D建模为依据,描绘出了2D的线稿(形状),然后再根据各种信息往稿子里面填色。基于这个原理,很难做出非常拟真的光影效果。目前大家在游戏当中看到的光影效果,往往是利用光照贴图(Lightmap)来模拟的。举一个很简单的过程作为例子,例如某片像素的深度信息告诉电脑,这里能不能被光线照到,然后电脑就决定为这片像素贴上半透明的黑色/白色的光影贴图,模拟出阴影/亮面,就形成了简单的光影效果。

游戏画面之所以有立体感,光照贴图居功至伟,但这并不能获得完美的效果

很多情况下,游戏中的光照贴图是预先烘焙好的,也就是说光影并不是实时计算出来的。尽管很多游戏带有灯照、火光乃至天气之类的系统,光影会产生变化,但这依然只是预先渲染好的光照贴图,只是根据不同的情况贴不同的图而已。

例如近几年流行的环境光遮蔽,实际使用的往往是带有指向性的光照贴图;而体积光,则可以简单看做是带半透明模糊处理过的贴片;而物体表面凹凸不平造成的高光和阴影,实则是法线贴图模拟的。这些手段都可以提升画质,但从原理来看也只是花式贴图而已。基于此,游戏画质已经很久没有出现质的突破了。

光线追踪能给游戏画质带来质的提升?

用贴图来模拟光影,这让游戏画面的光影效果有很大的局限。例如,我们知道在不同角度看一个物体,它的光影很有可能不一样,典型的例子就是镜面/水面反射。但由于目前游戏的光影不是即时计算的,因此很难做出完美的模拟——想必大家也没在游戏中见过打碎一块镜子,玻璃碎片还都能继续当镜子用的情况;而现在很多游戏虽然做出了水面倒影,但在某些角度倒影会消失不见,这些案例就是这个道理了。

为何《战地》的光线追踪演示会强调车体镜面反射火光?因为传统的贴图很难做到这点

再例如,目前的光照贴图对漫反射的模拟也并不出彩。如果大家有接触绘画,应该知道写实绘画不仅需要考虑物体的固有色,还要考虑光源色和环境色,其实这就是漫反射的处理,处理好了漫反射的画才足够写实、生动。但由于游戏的光影效果是贴图,因此很难对物体之间光线漫反射造成的颜色变化,进行非常精确的模拟。尽管可以通过一些像素处理技术,来模拟像素之间的颜色影响,但效果依然有限。

游戏往往会用预先准备的贴图来绘制亮部、暗部(例如眼窝、耳廓的阴影),无法精确模拟光影变化

这几年来游戏画面越来越精细,但大家始终觉得游戏画面和现实相比,仍显得生硬,这是由于贴图始终无法完美模拟各种光线反射。游戏画面的拟真,显而易见已经遇到了瓶颈——现在的游戏画面对比的《孤岛危机》,有质变的提升么?《孤岛危机》诞生于2007年,用《孤岛危机》对比它五年前也就是2002年的游戏,再用现在的游戏对比距离现在十多年前《孤岛危机》,不能难发现最近十几年游戏画质提升之小,是远慢于之前的。而光线追踪技术,则是画质瓶颈的破局之道。

2007年的《孤岛危机》画面,现在的游戏对比这十年前的游戏,画质并没有质的突破

顾名思义,光线追踪技术能够追踪光线的生成、反射、遮蔽、消失,继而实时生成光影。这次,光影终于不只是用贴图贴出来的了,而是真正去模拟一束光,在场景中到底能产生怎样的色调、明暗。这样得来的光影效果,肯定比预先制作的光影贴图来得更加可信,毕竟你无法为无数种光照情况都准备相应的贴图或者贴图的变化。从原理上来看,光线追踪技术无疑能为游戏带来更高的画质上限。

光线追踪才有可能模拟出如此丰富且逼真的光影

在发布RTX系列显卡的时候,NV已经放出了光线追踪的演示,效果大家也有目共睹。开启了RTX光线追踪后,车门能给实时映射出火光,而水面也能随时随刻映射出倒影。而关闭了光线追踪后,车门的火光水面的倒影皆消失殆尽,一切都变得平淡起来。

不过,目前阶段的光线追踪游戏,实际上并不是全局使用光线追踪的。由于性能等方面的限制,光栅化仍必不可少,RTX显卡只能提供混合渲染。

目前阶段的游戏并不能做到全局实时光线追踪,而是混合渲染,光线追踪尽管很美很吸睛但并不完整

如此一来,美工就显得相当关键。同样的图形技术,不同的美工打磨效果会截然不同。例如同样使用环境光遮蔽,《神秘海域4》的画面氛围就比普通3A大作高出一个档次。在什么地方使用光线追踪才会有最好的效果?对于一个新应用于游戏的图形技术,这是一个值得深究的课题。这些尝鲜的光线追踪游戏,会不会静下心来打磨美工,以让局部的光线追踪发挥出应有的潜能?如果厂商对于光线追踪的态度只是卖噱头,恐怕最终成品并不如人意。

如果不能细心打磨不完整的光线追踪,恐怕最终效果还不如传统渲染的《神海4》,只会徒费性能

总结

毫无疑问,对于游戏而言光线追踪是革命性的图形技术。但一种图形技术在何时普及,不仅需要硬体厂商自身的研发,也要考虑历史的进程。希望新一代游戏主机PS5、XBOX SX能够让业界更迅速地跟进光线追踪技术,让游戏画质跨入新时代吧!

发布于 2020-04-10继续浏览内容知乎发现更大的世界打开Chrome继续Xi YangXi Yang每天吃三斤GV971

传统管线渲染的影子是假的,是化学成分的,都加了特技。不提原理,它很难(以可接受的计算量)完成这些现实世界稀松平常的效果:

  • 离遮挡物越近越锐利,越远越柔和。
  • 由有体积的动态光源投射出来。

这还没有提到环境光遮蔽、模糊反射这些传统上由屏幕空间瞎蒙的玩意,还有高光反射这种需要立方贴图的玩意,现在都可以从场景里真实计算得到。


传统管线渲染的影子是假的,是化学成分的,都加了特技。不提原理,它很难(以可接受的计算量)完成这些现实世界稀松平常的效果:

  • 离遮挡物越近越锐利,越远越柔和。
  • 由有体积的动态光源投射出来。

这还没有提到环境光遮蔽、模糊反射这些传统上由屏幕空间瞎蒙的玩意,还有高光反射这种需要立方贴图的玩意,现在都可以从场景里真实计算得到。


推荐阅读:
相关文章