# 从数小时到实时：光线追踪是怎么跑进游戏的

RT Core 硬件加速求交、降噪补足采样不足、DLSS 等 AI 辅助——三件事缺一不可，让光追从离线渲染变成实时可玩

> RT Core · 降噪 · DLSS · 实时光线追踪 · 硬件加速 · 约 6 分钟 · 07 月 11 日

## 本篇要点

1. 光线追踪的昂贵在于每条光线需要遍历 BVH 并做求交测试，纯软件实现每条光线需数千条指令。
2. RT Core 把 BVH 遍历和三角形求交焊进硬件，将光线处理能力从 Pascal 的 1.1 十亿条/秒提升到 Turing 的 10 十亿条/秒。
3. 降噪算法利用空间滤波、时间累积和 AI 去噪，让 1–4 条光线/像素的噪点画面恢复为干净图像。
4. DLSS 以低分辨率渲染 + AI 重建 + 帧生成，等效提升帧率数倍；DLSS 3.5 的光线重建将降噪和超分辨率合二为一。

---

上一篇我们聊到，路径追踪用蒙特卡洛方法随机采样，能自然产生颜色溢出、软阴影和焦散——但代价是巨大的计算量。电影《冰雪奇缘》一帧用路径追踪渲染数小时，这在游戏里显然不可接受。

游戏要求每秒至少 30 帧，最好是 60 帧。一帧只有 16–33 毫秒的渲染预算。光追凭什么从"数小时一帧"变成"实时可玩"？这背后是三件事：**RT Core 硬件加速求交**、**降噪技术补足采样不足**、以及**DLSS 等 AI 辅助**。缺一不可。

## 光追为什么那么贵：每条光线都是一场"审问"

先算一笔账。1920×1080 分辨率，约 200 万个像素。如果每个像素只发射 1 条光线，每帧就是 200 万条光线。但路径追踪需要成百上千条光线/像素才能得到干净画面——算下来，每帧需要数亿条光线。

更关键的是**每条光线干了什么**。光线从相机出发，需要在场景中找出它最先撞到哪个三角形。暴力做法是遍历所有三角形——如果场景有 100 万个三角形，每条光线要跟 100 万个三角形做求交测试。200 万像素 × 100 万三角形 = 200 万亿次测试，这显然不行。

所以实际用的是**加速结构**。最主流的是 **BVH（层次包围盒）**——把场景中的三角形组织成一棵树状结构，每个节点是一个包围盒（AABB），叶子节点是实际三角形。[1] 光线从根节点开始，测试是否与包围盒相交：不相交就跳过整个子树，相交则继续深入。这样，每条光线平均只需要测试几十个包围盒和几个三角形，把复杂度从 $O(N)$ 降到 $O(\log N)$。

但即使这样，每条光线还是要经历几十次包围盒测试和几次三角形求交。在纯软件实现中（用通用着色器代码做），每条光线需要**数千条指令**来完成 BVH 遍历和求交。[2] 2016 年的 Pascal 架构 GPU，用软件跑光线追踪，只能达到约 **1.1 十亿条光线/秒**。[2] 而 1080p、60fps 的实时光追，业界估算需要每秒处理 **60 亿条以上**的光线。[3] 差距巨大。

## RT Core：把最耗时的步骤焊进硬件

NVIDIA 在 2018 年的 Turing 架构（RTX 20 系列）中，给每个 SM（流式多处理器）加入了一个专用硬件单元：**RT Core**。[2]

RT Core 只做两件事：
1. **包围盒测试**（Box Intersection）—— 判断光线是否与 BVH 中的某个包围盒相交
2. **光线-三角形求交**（Triangle Intersection）—— 精确计算光线与三角形的交点

![RT Core 工作原理示意图：SM 发起 TraceRay 请求，RT Core 自主遍历 BVH 并返回命中结果](https://developer.nvidia.com/blog/wp-content/uploads/2018/09/image1.jpg)

工作流程是：着色器（SM 上的 CUDA 核心）调用 `TraceRay()` 指令，把光线数据和 BVH 指针交给 RT Core。RT Core 接管后**自主遍历 BVH**，在显存中高速读取节点数据。它内部像一个专用状态机，快速跳过不相关的包围盒，找到叶子节点后做精确求交，最后把结果（命中/未命中、交点坐标等）返回给 SM。[4]

这个设计的关键在于**卸载**。SM 不需要花几千条指令去遍历 BVH——它发出请求后就可以去做其他计算（顶点着色、像素着色、AI 推理等），RT Core 在后台并行处理光线求交。Turing 的旗舰 TU102 芯片有 72 个 RT Core，加上 68 个 SM，可以实现 **10 十亿条光线/秒**，是 Pascal 纯软件方案的 **10 倍**。[2]

但 10 倍仍然不够。即便 10 十亿条/秒，分摊到 60fps 的每帧也只有约 1.67 亿条光线。而 1080p 下每像素分摊不到 1 条光线——画面会布满噪点。

## 降噪：用 1 条光线"骗"出干净画面

这就是降噪（denoising）的用武之地。

路径追踪的噪点来自采样不足。如果每像素只有 1 条光线（1 sample per pixel, 1 spp），画面的方差可以超过 200%——几乎全是噪点。[5] 但降噪算法可以把这个几乎无法辨认的噪点信号，恢复成一张干净的图像。

降噪的思路是**利用相邻像素的信息**。如果某个像素是天空，旁边的像素大概率也是天空——可以把它们的信息平均一下。但问题在于，物体边缘处不能乱平均，否则会糊掉。所以现代降噪器使用 G-buffer 数据（法线方向、深度、粗糙度、运动向量等）来指导滤波：在相似材质和几何的区域内平滑，在边界处保持锐利。[5][6]

主流降噪器（如 NVIDIA 的 NRD 库中的 ReLAX、REBLUR）用了三招组合：

- **空间滤波（spatial filtering）**：在当前帧内，利用周围像素的信息来填补空缺。每个像素的权重由位置距离、法线差异、深度差异等因素决定。
- **时间累积（temporal accumulation）**：把前一帧的信息重投影到当前帧，用指数移动平均来累积历史。一帧的噪声在时间轴上的随机性会被平均掉。
- **AI 去噪**：用神经网络学习"噪点图 → 干净图"的映射，能识别更复杂的模式。[5]

这背后的逻辑是：**硬件提供有限但足够的光线样本，降噪算法把它们"脑补"成干净图像**。游戏里你看到的"光追效果"，实际渲染的光线数量可能只有离线渲染的千分之一，剩下的都是降噪算法补上的。

## DLSS：AI 让帧率再翻倍

降噪只能处理噪点，不能提高帧率本身。如果 GPU 渲染一帧需要 30 毫秒（约 33fps），再怎么降噪也到不了 60fps。

**DLSS（深度学习超级采样）** 从另一个角度解决这个问题。它以**更低的分辨率**渲染，然后用 AI 网络重建出高分辨率画面。比如渲染 1080p，输出 4K——这意味着一帧的像素总量减少到 1/4，GPU 有更多时间处理光线追踪。[7]

DLSS 3 进一步加入了**帧生成**：AI 分析连续两帧的画面，在它们之间插值生成一帧。这样，GPU 渲染 30fps，显示出来可能是 60fps。[7]

最新的 DLSS 3.5 引入了**光线重建（Ray Reconstruction）**——它把降噪和超分辨率合二为一，用同一个 AI 网络替代传统的手工调参降噪器。训练时用离线渲染的高质量图像作为"标准答案"，AI 学会了识别不同的光追效果（反射、全局光照、阴影）并做出智能处理。[8]

这三层 AI 辅助——超分辨率、帧生成、光线重建——叠加起来，可以让 4K 光追游戏的帧率提升到原生渲染的 **5 倍**。[8]

## 小结

光线追踪从"数小时一帧"到"实时可玩"，靠的是三件事同时发力：

1. **RT Core 把 BVH 遍历和求交做进硬件**，将光线处理能力提升了 10 倍
2. **降噪算法用 1–4 条光线/像素 + 智能滤波**，把原本需要成百上千光线才能得到的画面"脑补"出来
3. **DLSS 等 AI 技术**以更低分辨率渲染 + AI 重建 + 帧生成，等效提升帧率数倍

这三者缺一不可。没有 RT Core，光线数量太低，降噪也救不回来；没有降噪，光追画面全是噪点；没有 DLSS，帧率达不到流畅标准。2018 年 Turing 架构的发布，标志着这三件事第一次同时成为现实——这也是为什么 2018 年被称作"实时光追元年"。

## 来源

1. [光线跟踪加速技术详解 — BVH 原理与复杂度分析](https://blog.houlinzhi.com/posts/ray-tracing-acceleration/)
2. [NVIDIA Turing 架构深度介绍 — RT Core 工作原理与性能对比](https://developer.nvidia.cn/blog/nvidia-turing-architecture-in-depth/)
3. [NVIDIA Turing 架构解析 — 1080p 实时光追所需 60 亿光线/秒的估算](https://cloud.tencent.cn/developer/article/1358689)
4. [GPU 微架构之旅 — RT Core 工作流程详解](https://www.less-bug.com/posts/gpu-microarchitecture-journey-day-5-specialists/)
5. [What Is Denoising? — NVIDIA 官方实时降噪技术介绍](https://blogs.nvidia.com/blog/what-is-denoising/)
6. [Real-Time Denoising: SVGF, A-SVGF, DLSS & ReLAX — 1 spp 噪声方差与降噪算法详解](https://mysimulator.uk/content/articles/realtime-denoising.html)
7. [NVIDIA DLSS 3.5 — 超分辨率、帧生成、光线重建的工作原理](https://www.nvidia.com/en-us/geforce/news/nvidia-dlss-3-5-ray-reconstruction/)
8. [NVIDIA DLSS 3.5 Ray Reconstruction — AI 替代手工降噪器](https://blogs.nvidia.com/blog/ai-decoded-ray-reconstruction/)

---

原文：https://pangzhengboyin.com/articles/real-time-ray-tracing-in-games-01d09a30

> **庞征博引** · 想学的，慢慢都会
>
> 庞征博引是把想学的东西写成连载的 AI 学习工具。说出想学什么，它会先了解你的基础，再把主题写成一篇篇 5–10 分钟能读完的文章；边读边问，接下来学什么跟着你走。这篇就是这样写出来的。
>
> 开始你自己的连载 → https://pangzhengboyin.com
