从眼球出发追寻光线的轨迹:浅谈什么是光线追踪
将「雷科技Lite」收藏为我的小程序,不再错过精彩内容
2019 年 1 月,“老黄家”NVIDIA 终于拿出了基于最新图灵架构的甜点级显卡 RTX 2060,其最受关注的功能是让消费者能够以较低的成本,获得电脑实时光线追踪的渲染能力。诸多游戏引擎如虚幻 4,Unity 纷纷宣布将支持这项技术,并在《战地5》等游戏中应用开来。
什么是光线追踪?从字面意思来看似乎可以理解成追踪光线的技术,而从放出的诸多演示视频来看,应用了光线追踪的画面好像有了更接近真实世界感觉的光线,画面不再像是被刻意制造出来的。那么光线追踪究竟是怎么一回事?现在可以用来做什么?
1
什么是光线追踪
如果用一句话来概括,光线追踪就是计算视线观察画面的路径,找到反射物和对应的发光源从而模拟出光照效果的技术。
在现实世界中光线照在物体上,会出现部分光线被吸收、部分光线反射出去、还有一部分被眼睛所看到的情况,眼镜观察到反射自物体以及周围环境的光,便能认知到物体的存在。
而光线追踪则是把显示画面的“镜头”当作人眼,射出不可见的光线投降画面中的物体,然后计算是否能和画面内光源相吻合,并根据计算出的光亮度对画面进行显示。这个过程正是在和客观的光照寻找最大公约数,从而实现尽可能真实的光照效果。
这项技术概念最初在 1969 年由 IBM 员工 Arthur Appel 提出原型,1979 年由Turner Whitted 完善了具体实现的思路和方式,这位大佬目前正在 NVIDIA 研究事业部工作。
光线追踪的出现,使得想要在画面中模拟光照时不用计算全局的光线,只需要算出眼球观看到的那部分内容然后加以计算即可,大幅降低了同等光照级别下渲染画面的所需资源。
2
预渲染与光线追踪
早在个人电脑显卡实现实时光线追踪技术之前,游戏就需要模拟光照表现来提升游戏的感染力,但电脑的性能还无法撑起光线的运算量,游戏开发者们想到了各种办法来在游戏中尽可能地模拟出让人信服的光线效果。
早在 FPS 开山之作的《毁灭战士》,就引入了射出子弹的火光模拟,但这还很初级在敌人身上的火光之外没有和场景做更多的模拟。之后的一代经典《半条命2》中,引入了更多的场景光照计算,每一次攻击都能感受到光影的变化,这时计算的是阴影变化带来的光照效果,场景还缺乏更多的光照计算。
再之后,开发者们找到了更节约表现却更好的办法:预渲染。在制作会出现在游戏画面中的每张贴图时,就根据需要的光线表现预先算出对应的画面,到了运行游戏时直接加载对应的贴图,然后再实时计算少量的光照,就可以实现还不错的效果。
可能有人会问,同样是电脑计算出来的画面,为什么电影的特效尤其是科幻电影中能够有更为真实的光照表现呢?因为他们首先用上了光线追踪。是的,在个人电脑用上光线追踪数年前,电影工业就已经引入光线追踪技术来提升画面的光照表现。
电影画面没有一秒钟完成 30 帧甚至 60 帧渲染的紧张要求,可以在强大计算机组成的集群中用上数十分钟甚至数小时来渲染仅仅一帧画面,实现了可以跟真实世界相媲美的光线效果。
而 NVIDIA 的 RTX 显卡系列,通过引入高效的光线计算核心,在个人电脑上实现了实时光线追踪,我们可以在 30 帧、60 帧甚至更高帧率的画面下看到更加客观的光线。
3
“老黄”如何提升光线追踪的计算效率
RTX 显卡是如何做到能在游戏即时刷新的画面中,也能够带来光线追踪渲染的?这就得说到最初的 Titan RTX、顶级的 RTX2080Ti 以及甜点级 RTX2060 的根——图灵架构。
上文说到 NVIDIA 在设计新一代 GPU 时引入了高效的光线计算核心,这便是图灵架构的 RT Core。传统的 GPU 核心计算光线效果,就像是引擎挂低档位却跑到高转速,累得要死却不见速度多快,而 RT Core 用更有效的方式来进行光线计算,挂到这个高档位之后光线计算能力得到显著提升。
但即使是提高了运算的效率,在光线这个超大计算量的对象面前,RT Core 能提供的性能依旧有限,只能以较低水平来实现。而这个较低水平的实时光线追踪渲染出的画面,存在着大量噪点,于是老黄又引入了降噪计算使得画面纯净起来。
即使是如此节约计算资源,把效果最大化的实时光线追踪,在顶级显卡 RTX2080Ti 进行演示时也只能实现超过 60 帧的流畅水平。就是说我们如今看到的实时光线追踪效果仍处于初级阶段,还有非常大的进步空间。
4
光线追踪现在可以用了吗
在著名的星球大战光线追踪演示中,可以看到风暴士兵乳白色盔甲上即时反射出了天花板上的光源,同时照在身上的光线又表现出了真实可信的体积,基地地板的反光更是让这段演示看起来像在真实世界搭建的录影棚中设置。
不过在法斯玛的亮银色盔甲上还是看出了些许破绽,亮光盔甲的大面积光线反射虽然在极力还原客观的情况,但由于算力以及渲染分辨率的不足,还是能看出降噪后留下的颗粒感痕迹。
这是顶级显卡上渲染出的效果,到了甜点级 RTX 2060 上就难以启齿了,相比 RTX 2080Ti 的 68 个光线追踪核心,RTX 2060 仅为 30 个少了一半还多,渲染效果也自然会打折扣。
根据评测数据,在《战地5》1080P 分辨率最低光线追踪画质下,RTX 2060 仅能达到55 帧,离 60 帧的流畅目标还有距离;而星球大战光线追踪演示,4K 画面下仅有 18 帧,2K 画面下也仅有 28 帧。
结论一目了然,目前 RTX 2060 提供的光线追踪仅仅是能打开而已,离能够在流畅画面下带来更真实光照还有距离。所以还是不要想凭借 RTX 2060 就舒服地体验实时光线追踪,以它不亚于 GTX 1070 的性能和价格定位来看,作为单纯的更新换代显卡更为合适。
本文编辑:白徵明
所长推荐好物
也许你还喜欢以下好文