光线追踪steemCreated with Sketch.

简洁明了的解释

光线追踪是一种通过模拟光线在现实世界中的物理行为,来生成极其逼真的计算机图形的技术。

它细致地计算光线从光源发出、经过物体反射、最终进入虚拟摄像机(你的屏幕)的路径。从而呈现出惊人准确的反射阴影光照效果。


一个生动的类比:台球桌

想象一张台球桌:

  1. 摄像机即你的眼睛:你站在球桌一端,盯着某个特定的球(屏幕上的一个像素)。
  2. 反向追踪:光线追踪并非追踪每束从灯泡发出的光如何经过多次反射最终进入你的眼睛(这效率极低),而是反向工作。
  3. 过程:它从你的眼睛(摄像机)向那个特定的台球发射一条光线。当光线击中球体时,算法会问:“照亮这个点的光是从哪里来的?”
  4. 寻找光源:它接着从击中点向场景中的光源追溯一条新的光线,检查是否有物体阻挡路径(形成阴影)。如果球体是光滑的,它还会向反射方向追踪光线,查看表面映出了什么。

通过这种从摄像机反向追踪到光源的方式,光线追踪能以更高效率实现照片级的真实效果。


技术核心:工作原理

使用光线追踪渲染单帧图像的过程包括以下步骤:

  1. 摄像机光线(视线):针对屏幕上的每个像素,算法从虚拟摄像机发射一条光线穿过该像素进入3D场景。
  2. 交点测试:光线检测其在3D场景中首先击中的物体。
  3. 着色计算:一旦找到击中点,该像素的颜色由该点的光照计算决定。这正是技术精髓所在:
    • 阴影光线(射线投射):从击中点向每个光源直接发射新的“阴影光线”。如果该光线在到达光源前被其他物体阻挡,则原始击中点处于阴影中。
    • 反射光线:如果表面是反射性的(如金属或水),则沿镜面反射方向发射新光线。这条新光线击中的颜色将决定反射所见内容。这一过程可多次进行(“多次反弹”),以实现反射中嵌套反射的高度精准效果。
    • 折射光线:如果表面是透明的(如玻璃或水),则光线会穿透物体,根据物理定律弯曲,以查看另一侧的景象。

对每帧数百万像素进行所有这些计算的组合,最终生成逼真的图像。


光线追踪 vs. 光栅化(传统方式)

要真正理解光线追踪的价值,需了解它所替代的技术:光栅化

  • 光栅化如同一位才华横溢的画家绘制场景。它速度极快且高效:将3D物体压平到2D屏幕上,然后运用巧妙技巧和近似方法(着色器)来模拟光照、阴影和反射的效果。
  • 优点:速度极快,使得游戏几十年来能够实现高帧率。
  • 缺点:光照和反射仅是近似效果,在复杂场景中常常失真或显得虚假。例如,光栅化反射只能显示场景预先计算好的数据,无法动态反映角色等物体。

光线追踪并非取代光栅化,而是对其增强**。在现代游戏中,主体场景仍由快速的光栅化构建,而光线追踪则叠加其上,处理那些过于复杂难以模拟的超现实光照和反射效果。


为何现在成为热点?

光线追踪理论自20世纪80年代就已存在,但过去速度极慢,仅用于预渲染的电影CGI(如皮克斯影片),其中单帧渲染可能耗时数小时甚至数天。

当前的革命性发展源于:

  1. 专用硬件英伟达(凭借其RTX显卡)AMD等公司已在显卡中内置专门核心,旨在加速光线追踪的复杂计算。
    • RT核心:这些核心极快地完成“交点测试”(上述步骤2)。
    • 张量核心:这些核心驱动DLSS(深度学习超级采样),这是一种人工智能技术,帮助从低分辨率图像重建高分辨率图像。这至关重要,因为光线追踪仍非常耗资源。通过以较低分辨率渲染游戏并运用AI进行放大,DLSS恢复了性能损失,使光线追踪在高帧率下流畅运行成为可能。

主要优势总结:

  • 照片级真实图形:在光照、阴影和反射方面达到无与伦比的准确性。
  • 物理精确:模拟真实世界的光线物理行为,因此默认表现自然。
  • 便于开发者使用:对艺术家来说,有时更简单,因为他们只需放置光源,让物理规律自行工作,而无需手动将模拟光照“烘焙”到场景中。

主要缺点总结:

  • 计算量极大:需要巨大的处理能力。
  • 需要昂贵硬件:要实时应用(如游戏中),需支持该技术的现代GPU。
  • 影响性能:即使使用现代硬件,启用光线追踪仍会显著降低游戏帧率,这就是DLSS等技术如此重要的原因。

光线追踪是十多年来实时图形领域的最大飞跃,它从巧妙模拟转向真实光物理模拟,创造出与现实别无二致的图像。