Ray Tracing Global Illumination Path Tracing

光线追踪(Ray Tracing):从物理原理到工程实现

光线追踪(Ray Tracing)是计算机图形学中模拟光线在场景中传播的渲染技术。从 1980 年 Turner Whitted 的经典算法,到 2018 年 NVIDIA RTX 的硬件加速,再到如今 Unreal Engine 的 Lumen 与 Isaac Sim 的实时路径追踪,光线追踪已经从离线渲染的"奢侈品"变成了实时交互的"标准配置"。

2026-01-02 14 分钟阅读
文章目录38

光线追踪(Ray Tracing):从物理原理到工程实现

——从 Whitted 到 RTX,从离线渲染到实时全局光照的技术演进

导言: 光线追踪(Ray Tracing)是计算机图形学中模拟光线在场景中传播的渲染技术。从 1980 年 Turner Whitted 的经典算法,到 2018 年 NVIDIA RTX 的硬件加速,再到如今 Unreal Engine 的 Lumen 与 Isaac Sim 的实时路径追踪,光线追踪已经从离线渲染的“奢侈品”变成了实时交互的“标准配置”。

本文将从基础原理出发,逐步深入到硬件加速、引擎实现,并对比 Path Tracing 与 Ray Tracing 的技术差异,帮助读者理解这一技术栈的工程本质。


一、为什么需要光线追踪?从光栅化到物理渲染

1.1 光栅化的局限

传统**光栅化(Rasterization)**渲染管线是“几何驱动”的:将 3D 模型投影到 2D 屏幕,逐像素填充颜色。这种方法高效,但存在根本性局限:

  • 阴影:需要 Shadow Mapping,容易出现锯齿与漏光
  • 反射:只能做环境贴图(Environment Mapping),无法反映动态场景
  • 全局光照(GI):依赖预计算光照贴图,无法处理动态光源与物体
  • 折射:难以准确模拟玻璃、水等透明材质

1.2 光线追踪的物理直觉

**光线追踪(Ray Tracing)**是“光线驱动”的:从相机发射光线,追踪光线与场景的交互,模拟真实的光线传播。其核心思想是:

光线从光源发出,经过多次反射/折射后进入人眼。如果我们反向追踪(从相机到光源),物理结果等价。

这种“反向追踪”使得我们可以:

  • 精确计算阴影(直接追踪到光源)
  • 准确模拟反射与折射(递归追踪次级光线)
  • 自然实现全局光照(通过 Monte Carlo 采样)

二、光线追踪基础原理

2.1 基本算法流程

经典的光线追踪算法(Whitted-Style Ray Tracing)包含三个核心步骤:

  1. 光线生成(Ray Generation):从相机位置,通过像素中心发射主光线(Primary Ray)
  2. 相交测试(Intersection Testing):计算光线与场景几何体的最近交点
  3. 着色与次级光线(Shading & Secondary Rays)
    • 计算直接光照(从交点向光源发射 Shadow Ray)
    • 若表面为镜面,发射反射光线(Reflection Ray)
    • 若表面为透明,发射折射光线(Refraction Ray)

2.2 关键问题:RT 如何计算颜色?

这是理解光线追踪的核心问题。RT 的颜色计算分为三个层次:

1. 直接光照(Direct Illumination)

当光线击中表面后,向每个光源发射 Shadow Ray(阴影测试光线):

  • 如果 Shadow Ray未被遮挡:计算该光源的直接贡献
  • 如果 Shadow Ray被遮挡:该光源贡献为 0(产生阴影)

公式(基于 Phong 光照模型和 BRDF 理论):

Ldirect=i=1NViLifr(ωi,ωo)max(0,nωi)L_{direct} = \sum_{i=1}^{N} V_i \cdot L_i \cdot f_r(\omega_i, \omega_o) \cdot \max(0, \mathbf{n} \cdot \omega_i)

其中:

  • ViV_i:可见性函数(Shadow Ray 是否被遮挡,0 或 1)
  • LiL_i:光源ii的入射辐射度(Incoming Radiance)
  • fr(ωi,ωo)f_r(\omega_i, \omega_o):BRDF(双向反射分布函数),描述材质如何反射光线
  • max(0,nωi)\max(0, \mathbf{n} \cdot \omega_i):Lambert 余弦定律,n\mathbf{n}是表面法线,ωi\omega_i是入射方向

引用来源

  • Phong, B. T. (1975). "Illumination for computer generated pictures". Communications of the ACM.
  • Nicodemus, F. E. (1965). "Directional reflectance and emissivity of an opaque surface". Applied Optics.

2. 间接光照(Indirect Illumination)

对于镜面反射折射表面,RT 会递归追踪次级光线:

  • 反射光线:沿镜面反射方向追踪,递归计算颜色
  • 折射光线:沿折射方向追踪,递归计算颜色

递归终止条件

  • 达到最大递归深度(例如 5-10 层)
  • 光线未命中任何物体(返回环境色或黑色)
  • 光线能量衰减到阈值以下(Russian Roulette)

3. 环境光(Ambient)作为兜底

关键问题:如果光线没有直接追踪到光源,或者递归终止了,颜色从哪里来?

RT 使用**环境光(Ambient)**作为兜底:

  • 环境贴图(Environment Map):当光线未命中物体时,从环境贴图采样颜色
  • 环境光常数:简单的全局环境光(Lambient=kaIaL_{ambient} = k_a \cdot I_a
  • 递归终止时的颜色:返回环境色或黑色

完整颜色公式(Whitted-Style Ray Tracing):

Lfinal=Lambient+Ldirect+LindirectL_{final} = L_{ambient} + L_{direct} + L_{indirect}

其中:

  • Lindirect=krLreflected+ktLrefractedL_{indirect} = k_r \cdot L_{reflected} + k_t \cdot L_{refracted}
  • krk_r:镜面反射系数(Specular Reflection Coefficient)
  • ktk_t:透射系数(Transmission Coefficient),满足kr+kt1k_r + k_t \leq 1
  • LreflectedL_{reflected}:递归追踪反射光线的结果
  • LrefractedL_{refracted}:递归追踪折射光线的结果

引用来源

  • Whitted, T. (1980). "An improved illumination model for shaded display". Communications of the ACM, 23(6), 343-349.

2.3 光线追踪循环示意图(含颜色计算)

2.4 数学基础:光线方程

一条光线可以用参数方程表示:

R(t)=O+tD,t0\mathbf{R}(t) = \mathbf{O} + t \cdot \mathbf{D}, \quad t \geq 0

其中:

  • O\mathbf{O}是光线起点(Origin)
  • D\mathbf{D}是光线方向(Direction),通常为单位向量
  • tt是参数,t>0t > 0表示沿光线方向

相交测试就是求解:对于场景中的每个几何体,是否存在t>0t > 0使得R(t)\mathbf{R}(t)落在几何体表面。

引用来源

  • 这是计算机图形学中的标准光线参数方程,见任何图形学教材,如:
    • Shirley, P., & Morley, R. K. (2003). "Realistic Ray Tracing" (2nd ed.). A K Peters.

2.5 RT 与 PT 的关系和对比

2.5.1 核心关系:PT 是 RT 的改进版

Path Tracing(PT)是 Ray Tracing(RT)的改进与扩展,两者共享相同的光线追踪框架,但采样策略不同。

维度Ray Tracing (Whitted)Path Tracing
基础框架光线追踪框架同样使用光线追踪框架
光线方向确定方向(镜面反射/折射)随机采样方向(Monte Carlo)
递归策略固定深度概率终止(Russian Roulette)
适用材质镜面/透明材质所有材质(包括漫反射)

关键差异:RT 只追踪确定方向(镜面反射/折射),而 PT 通过随机采样追踪所有可能方向,从而捕获漫反射的间接光照。

2.5.2 渲染方程:PT 的数学基础

Path Tracing 基于渲染方程(Rendering Equation)

Lo(x,ωo)=Le(x,ωo)+Ωfr(x,ωi,ωo)Li(x,ωi)cosθidωiL_o(\mathbf{x}, \omega_o) = L_e(\mathbf{x}, \omega_o) + \int_{\Omega} f_r(\mathbf{x}, \omega_i, \omega_o) L_i(\mathbf{x}, \omega_i) \cos\theta_i d\omega_i

核心思想:用 Monte Carlo 积分近似这个积分,通过随机采样多条路径来估计全局光照。

PT 的 Monte Carlo 估计

Lo(x,ωo)Le(x,ωo)+1Ni=1Nfr(x,ωi,ωo)Li(x,ωi)cosθip(ωi)L_o(\mathbf{x}, \omega_o) \approx L_e(\mathbf{x}, \omega_o) + \frac{1}{N} \sum_{i=1}^{N} \frac{f_r(\mathbf{x}, \omega_i, \omega_o) \cdot L_i(\mathbf{x}, \omega_i) \cdot \cos\theta_i}{p(\omega_i)}

其中p(ωi)p(\omega_i)是重要性采样的概率密度函数。

引用来源

  • Kajiya, J. T. (1986). "The rendering equation". ACM SIGGRAPH Computer Graphics.
  • Veach, E. (1997). "Robust Monte Carlo Methods for Light Transport Simulation". Stanford University PhD thesis.

2.5.3 PT 算法流程

2.5.4 关键差异对比

特性Ray TracingPath Tracing
光线方向确定(镜面反射/折射)随机(按 BRDF 采样)
递归深度固定(例如 5 层)概率终止(Russian Roulette)
直接光照✅ 支持(Shadow Ray)✅ 支持(Shadow Ray)
镜面间接光照✅ 支持(反射/折射)✅ 支持(反射/折射)
漫反射间接光照❌ 不支持✅ 支持(核心差异)
全局光照(GI)部分支持(仅镜面)✅ 完全支持
焦散(Caustics)❌ 不支持✅ 支持(双向路径追踪)
光线数量每像素固定(1-3 条)每像素多样本(100-1000 条)
收敛性立即收敛(无噪声)需要多样本平均(有噪声)
性能相对快慢(需要大量样本)

2.5.5 为什么 PT 能处理漫反射而 RT 不能?

RT 的局限:漫反射方向是随机的,RT 不知道追踪哪个方向,只能忽略漫反射的间接光照。

PT 的优势:随机采样多个方向,统计平均,近似漫反射的半球积分。

形象比喻

  • RT:像手电筒,只能照亮确定方向(镜面反射/折射)
  • PT:像探照灯,随机扫描多个方向,统计平均得到全局光照

为什么 PT 需要降噪?PT 使用随机采样,每个像素的估计值都有方差,需要大量样本和降噪算法才能收敛。


三、RTX 革命:硬件加速的光线追踪

3.1 性能瓶颈:BVH 遍历

光线追踪的主要计算开销在于:

  1. BVH 遍历(Bounding Volume Hierarchy):快速剔除不相交的几何体
  2. 三角形相交测试:精确计算光线与三角形的交点

传统 CPU 实现中,这两个步骤占用 90% 以上的计算时间。

3.2 NVIDIA RTX 架构

**RTX(Ray Tracing eXtended)**是 NVIDIA 在 2018 年推出的硬件加速方案,核心组件包括:

RT Cores(光线追踪核心)

RT Cores 是专用硬件单元,并行执行:

  • BVH 遍历:硬件加速的层次遍历
  • 三角形相交测试:硬件加速的 Ray-Triangle Intersection

性能提升:相比纯软件实现,RT Cores 可以将光线追踪性能提升10-100 倍

Tensor Cores & AI 降噪

  • DLSS(Deep Learning Super Sampling):使用 AI 上采样,在低分辨率下渲染,AI 提升到高分辨率
  • AI Denoising:使用神经网络实时降噪,减少 Path Tracing 所需的样本数

3.3 RTX 渲染管线

3.4 RTX 的技术优势

  1. 实时性能:硬件加速使得 1080p@60fps 的实时光线追踪成为可能
  2. 混合渲染:可以与光栅化管线混合,只对部分效果使用 RT
  3. 可扩展性:支持多级细节(LOD)与动态场景更新

四、工程实现:Unreal Engine 的光线追踪

4.1 UE 的混合渲染架构

Unreal Engine 5 采用**混合渲染(Hybrid Rendering)**策略:

  • 基础几何:仍使用光栅化(高效)
  • 特定效果:使用硬件 RT 加速
    • 阴影(Ray Traced Shadows)
    • 反射(Ray Traced Reflections)
    • 全局光照(Ray Traced GI)
    • 环境光遮蔽(Ray Traced AO)

4.2 Lumen:软件与硬件 RT 的统一

Lumen是 UE5 的全局光照系统,支持两种模式:

Software Ray Tracing(软件光线追踪)

  • 使用屏幕空间与**距离场(Distance Fields)**进行快速近似
  • 不依赖 RTX 硬件,兼容性更好
  • 质量略低于硬件 RT

Hardware Ray Tracing(硬件光线追踪)

  • 使用RTX/DXR API,调用 RT Cores
  • 质量更高,性能更好(在支持 RTX 的硬件上)
  • 需要 RTX 20 系列或更高

4.3 UE 的光线追踪着色器管线

关键着色器类型

  • RGS(Ray Generation Shader):定义如何生成光线
  • CHS(Closest Hit Shader):计算最近交点的着色
  • AHS(Any Hit Shader):处理透明度、阴影等需要“任意交点”的场景
  • Miss Shader:处理光线未命中任何几何体的情况

4.4 UE RT 的性能优化策略

  1. 层级细节(LOD):远距离物体使用简化几何
  2. 光线裁剪(Ray Culling):跳过不重要的光线
  3. 时间累积(Temporal Accumulation):复用上一帧的结果
  4. 降采样(Upscaling):低分辨率 RT + 上采样

五、工程实现:Isaac Sim 的 RTX 渲染

5.1 Isaac Sim 的渲染模式

NVIDIA Isaac Sim基于Omniverse RTX Renderer,提供两种渲染模式:

RTX Real-time(实时模式)

  • 目标:实时交互(30-60 FPS)
  • 技术:混合光栅化 + 硬件 RT
  • 用途:机器人仿真、实时可视化
  • 特点:快速响应,适合交互式训练

RTX Path Traced(路径追踪模式)

  • 目标:物理真实感(Photorealistic)
  • 技术:完整 Path Tracing + AI 降噪
  • 用途:合成数据生成(SDG)、高质量渲染
  • 特点:每帧数秒到数分钟,但质量接近离线渲染

5.2 Omniverse RTX Renderer 架构

5.3 合成数据生成(SDG)中的 RT

Isaac Sim 的核心价值在于可控的合成数据生成,RT 在其中发挥关键作用:

  1. 多模态真值

    • RGB:路径追踪渲染
    • 深度(Depth):从 RT 相交结果直接导出
    • 法线(Normal):从几何体表面法线导出
    • 语义分割(Segmentation):基于材质/实例 ID
    • 光流(Optical Flow):基于运动向量
  2. 物理一致性

    • RT 保证所有模态在同一物理模型下生成
    • 深度与 RGB 的几何关系严格一致
    • 阴影、反射、折射在所有模态中同步
  3. 可控参数扫描

    • 光照条件(HDR 环境贴图)
    • 材质属性(粗糙度、金属度)
    • 相机参数(内参、外参)
    • 场景几何(物体位置、姿态)

5.4 Isaac Sim RT 的技术特点

  • USD 原生:基于 Pixar USD(Universal Scene Description),场景描述标准化
  • 多 GPU 支持:可并行渲染多个视口
  • 确定性渲染:相同输入产生相同输出,便于可复现实验
  • 实时与离线切换:同一场景可在实时与路径追踪模式间切换

六、技术对比与工程权衡

6.1 性能 vs. 质量矩阵

技术方案性能(FPS)质量适用场景
纯光栅化100+中等移动端、低端硬件
混合渲染(UE Lumen SW)60-90中高跨平台游戏
混合渲染(UE Lumen HW RT)30-60PC/主机游戏
RTX Real-time(Isaac Sim)30-60实时仿真
Path Tracing(离线)0.01-1极高电影、高质量 SDG
Path Tracing(实时+降噪)1-10极高交互式预览

6.2 技术栈选择指南

选择 Whitted Ray Tracing 当:

  • 只需要镜面反射/折射效果
  • 需要确定性结果(无随机噪声)
  • 性能要求高,可接受间接光照缺失

选择 Path Tracing 当:

  • 需要全局光照(漫反射间接光照)
  • 需要物理真实感(电影级质量)
  • 可以接受降噪多样本累积

选择硬件 RT(RTX)当:

  • 需要实时性能(30+ FPS)
  • 有 RTX 硬件支持
  • 需要动态场景(实时更新 BVH)

选择软件 RT 当:

  • 需要跨平台兼容(无 RTX 硬件)
  • 可以接受质量折衷
  • 场景相对静态(BVH 构建成本低)

6.3 工程实践建议

  1. 渐进式采用

    • 先用光栅化保证基础性能
    • 逐步引入 RT 效果(阴影 → 反射 → GI)
    • 使用混合渲染平衡性能与质量
  2. 降噪策略

    • Path Tracing 必须配合降噪(AI 或传统滤波)
    • 时间累积(Temporal)可显著减少样本需求
    • 空间降噪需要权衡细节保留
  3. BVH 管理

    • 静态几何:预构建 BVH,运行时只更新变换
    • 动态几何:使用两层级 BVH(静态顶层 + 动态底层)
    • 频繁更新:考虑每帧重建成本 vs. 遍历效率

七、未来展望

7.1 硬件趋势

  • 更多 RT Cores:每代 GPU 的 RT 性能持续提升
  • 专用降噪单元:可能集成到 GPU 硬件
  • 光追专用 GPU:专门优化的架构(如 NVIDIA 的 Ada Lovelace)

7.2 算法趋势

  • 神经渲染(Neural Rendering):使用神经网络替代部分 RT 计算
  • 可微渲染(Differentiable Rendering):支持梯度反向传播,用于优化
  • 实时路径追踪:通过更好的采样与降噪,实现实时 PT

7.3 应用拓展

  • 自动驾驶仿真:高保真环境渲染用于感知训练
  • 机器人训练:物理一致的视觉反馈
  • 数字孪生:实时 RT 用于工业可视化

结语

光线追踪从离线渲染的“奢侈品”到实时交互的“标准配置”,背后是硬件加速、算法优化与工程实践的持续演进。理解从 Whitted 到 Path Tracing 的理论差异,掌握 RTX 硬件的工作原理,熟悉 UE 与 Isaac Sim 的工程实现,有助于我们在性能、质量与兼容性之间做出明智的技术选择。

在 AI 训练与仿真领域,光线追踪不仅是“好看”的渲染技术,更是生成物理一致、多模态对齐的合成数据的关键工具。它让我们能够可控地构造长尾场景、精确标注真值,为模型训练提供高质量的数据基础。

技术本质:光线追踪是连接物理规律数字世界的桥梁。是否掌握这一技术,决定了我们能否在仿真中生成足够真实、足够可控的训练数据,从而提升模型的泛化能力与安全边界。


参考文献与延伸阅读

经典论文

  1. Whitted, T. (1980): "An improved illumination model for shaded display".Communications of the ACM, 23(6), 343-349.

    • 提出了经典的 Whitted-Style Ray Tracing 算法
  2. Kajiya, J. T. (1986): "The rendering equation".ACM SIGGRAPH Computer Graphics, 20(4), 143-150.

    • 提出了渲染方程,奠定了 Path Tracing 的理论基础
  3. Phong, B. T. (1975): "Illumination for computer generated pictures".Communications of the ACM, 18(6), 311-317.

    • Phong 光照模型,影响深远的光照计算方法
  4. Veach, E. (1997): "Robust Monte Carlo Methods for Light Transport Simulation".PhD thesis, Stanford University.

    • Monte Carlo 光线传输的经典理论
  5. Nicodemus, F. E. (1965): "Directional reflectance and emissivity of an opaque surface".Applied Optics, 4(7), 767-775.

    • BRDF 理论的奠基性工作

经典教材

  1. Shirley, P., & Morley, R. K. (2003): "Realistic Ray Tracing" (2nd ed.). A K Peters.

    • 光线追踪的经典教材
  2. Pharr, M., Jakob, W., & Humphreys, G. (2016): "Physically Based Rendering: From Theory to Implementation" (3rd ed.). Morgan Kaufmann.

    • 物理渲染的权威教材,包含 Path Tracing 的完整实现

技术文档

  1. NVIDIA RTX:RTX Technology Overview

    • RTX 硬件加速技术文档
  2. Unreal Engine:Ray Tracing in Unreal Engine

    • UE 的光线追踪实现文档
  3. Isaac Sim:RTX Renderer Documentation

    • Isaac Sim 的 RTX 渲染器文档