光线追踪是一种照明技术,可为游戏带来额外的真实感。它模拟了光在现实世界中的反射和折射方式,提供了一个比在更传统的游戏中使用静态照明通常看到的更可信的环境。
光线追踪是一种照明技术,可为游戏带来额外的真实感。它模拟了光在现实世界中的反射和折射方式,提供了一个比在更传统的游戏中使用静态照明通常看到的更可信的环境。但究竟什么是光线追踪?更重要的是,它是如何工作的?
一个好的显卡可以使用光线追踪来增强沉浸感,但并不是所有的 GPU 都能处理这种技术。继续阅读以决定光线追踪是否对您的游戏体验至关重要,以及是否有理由在升级的 GPU 上花费数百美元。
虚光子
要了解光线追踪革命性的照明系统是如何工作的,我们需要退后一步,了解游戏之前是如何渲染光线的,以及需要模拟哪些内容才能获得逼真的体验。
没有光线追踪的游戏依赖于静态“烘焙”光照。开发人员将光源放置在可以在任何给定视图上均匀发光的环境中。此外,像 NPC 和对象这样的虚拟模型不包含任何其他模型的任何信息,因此需要 GPU 在渲染过程中计算光照行为。表面纹理可以反射光以模拟光泽,但只能反射从静态光源发出的光。下面以 GTA V 中的反射 对比 为例。
总体而言,多年来,GPU 的发展帮助这一过程在外观上变得更加逼真,但游戏在现实世界的反射、折射和一般照明方面仍然不够逼真。为此,GPU 需要能够追踪虚拟光线。
在现实世界中,可见光只是人眼感知的电磁辐射家族的一小部分。它包含既像粒子又像波的光子。光子没有真正的大小或形状——它们只能被创造或摧毁。
也就是说,光可以被识别为光子流。你拥有的光子越多,感知到的光就越亮。当光子从表面反弹时会发生反射。当沿直线传播的光子穿过透明物质并且该线被重定向或“弯曲”时,就会发生折射。被破坏的光子可以被认为是“被吸收的”。
游戏中的光线追踪试图模拟光在现实世界中的工作方式。它通过跟踪数百万个虚拟光子来跟踪模拟光的路径。光线越亮,GPU 必须计算的虚拟光子就越多,它反射、折射和散射的表面就越多。
这个过程并不是什么新鲜事。CGI 使用光线追踪已有数十年,尽管该过程在早期需要大量计算机来生成完整的电影,因为单个帧可能需要数小时甚至数天才能渲染。现在,家用 PC 可以实时模拟光线追踪图形,利用硬件加速和巧妙的照明技巧将光线数量限制在可管理的范围内。
真正令人大开眼界的是:与任何电影或电视节目一样,CGI 动画中的场景通常是使用不同角度“拍摄”的。对于每一帧,您可以移动摄像机来捕捉动作、放大、缩小或平移整个区域。和动画一样,您必须逐帧操作所有内容以模拟运动。把所有的镜头拼在一起,你就有了一个流畅的故事。
在游戏中,您可以控制一个始终处于运动状态并始终改变视角的摄像机,尤其是在快节奏的游戏中。在 CGI 和光线追踪游戏中,GPU 不仅必须计算光线在任何给定场景中的反射和折射方式,还必须计算镜头如何捕捉光线——您的视点。对于游戏来说,这对于单个 PC 或控制台来说是一项巨大的计算工作。
不幸的是,我们仍然没有能够真正以高帧速率渲染光线追踪图形的消费级 PC。相反,我们现在拥有可以有效作弊的硬件。
让我们变得真实
光线追踪与现实生活的基本相似性使其成为一种极其逼真的 3D 渲染技术,甚至可以让像 Minecraft 这样的块状游戏 在适当的条件下看起来接近照片般逼真。只有一个问题:它非常难以模拟。重现光在现实世界中的工作方式是复杂且资源密集型的,需要大量的计算能力。
这就是为什么游戏中现有的光线追踪选项(例如 Nvidia 的 RTX 驱动的光线追踪)并不真实。它们不是真正的光线追踪,每一个光点都是模拟的。相反,GPU 通过使用几种智能近似来“作弊”,以提供接近相同视觉效果的东西,但又不会对硬件造成太大负担。
大多数光线追踪游戏现在结合使用传统照明技术(通常称为光栅化)和特定表面(如反射水坑和金属制品)上的光线追踪。战地 V 就是一个很好的例子。您会看到水中部队的倒影、飞机上的地形倒影以及汽车油漆上爆炸的倒影。可以在现代 3D 引擎中显示反射,但在启用光线追踪时,无法达到战地 V 等游戏中显示的细节水平。
光线追踪也可以用于阴影,使它们看起来更加动态和逼真。你会在《古墓丽影:暗影》中看到这种效果非常好。
光线追踪照明可以在黑暗和明亮的场景中创建更逼真的阴影,边缘更柔和,清晰度更高。在没有光线追踪的情况下实现这种外观非常困难。开发人员只能通过谨慎、可控地使用预设的静态光源来伪造它。放置所有这些“舞台灯”需要花费大量时间和精力——即便如此,结果也不太对劲。
一些游戏全力以赴,使用光线追踪进行全局照明,有效地对整个场景进行光线追踪。但这是计算成本最高的选项,需要最强大的现代显卡才能有效运行。Metro Exodus 使用了这种技术,尽管实现并不完美。
正因为如此,只有光线追踪阴影或反射表面之类的半措施很受欢迎。其他游戏利用 Nvidia 技术(如去噪和深度学习超级采样)来提高性能并掩盖由于渲染光线少于创建真正光线追踪场景所需的光线而产生的一些视觉问题。这些仍然保留用于预渲染的屏幕截图和电影,高性能服务器可以花费数天时间渲染单帧。