Blog·Studio
文章系列日历归档关于搜索
Blog·Studio

一个记录思考、笔记与作品的技术博客。

Connect

© 2026 · Blog Studio

鄂ICP备19019526号

crafted with care

stay curious ✦

  1. 文章
  2. ›游戏引擎光线追踪工程 2026:ReSTIR 与混合光追的统一取舍

Index

  • 一、问题的提出:为什么 2026 是混合光追落地年
  • 二、形式化基础:path tracing 积分方程、Monte Carlo 噪声与 ReSTIR 的水库采样
  • 三、ReSTIR DI/PT Enhanced 2026 工程落地
  • 3.1 RTXGI 2.0 的 SDK 集成要点
  • 四、Unreal Engine 5.5/5.6 Lumen HWRT 优化
  • 4.1 Lumen Mesh Card 的工程取舍
  • 4.2 Lumen 与 Nanite 的协同
  • 五、软光追与混合架构:SSGI / Probe-based / Surfel GI fallback
  • 六、GPU 加速结构:BVH 构建、Opacity Micromap、SER
  • 6.1 SER 的硬件前提与软件 fallback
  • 七、对工程实践的推论
  • 八、对比与局限
  • 8.1 与 RTX Mega Geometry / Frostbite Hair 的横向对比
  • 九、给图形程序员的工作流清单
  • 9.1 三个反模式警告
  • 参考文献

游戏引擎光线追踪工程 2026:ReSTIR 与混合光追的统一取舍

把 ReSTIR 时空重用、Unreal Lumen 硬件光追、软光追与屏幕空间 GI 在同一帧内按通道、按对象、按预算动态切分,统一在 2026 年的混合光追架构中,落到 PSO 预算、显存控制与跨平台降级路径上。

2026年9月29日·约 41 分钟阅读·12,195 字·12 次阅读·博主
#游戏引擎与渲染
游戏引擎光线追踪工程 2026:ReSTIR 与混合光追的统一取舍

Index

  • 一、问题的提出:为什么 2026 是混合光追落地年
  • 二、形式化基础:path tracing 积分方程、Monte Carlo 噪声与 ReSTIR 的水库采样
  • 三、ReSTIR DI/PT Enhanced 2026 工程落地
  • 3.1 RTXGI 2.0 的 SDK 集成要点
  • 四、Unreal Engine 5.5/5.6 Lumen HWRT 优化
  • 4.1 Lumen Mesh Card 的工程取舍
  • 4.2 Lumen 与 Nanite 的协同
  • 五、软光追与混合架构:SSGI / Probe-based / Surfel GI fallback
  • 六、GPU 加速结构:BVH 构建、Opacity Micromap、SER
  • 6.1 SER 的硬件前提与软件 fallback
  • 七、对工程实践的推论
  • 八、对比与局限
  • 8.1 与 RTX Mega Geometry / Frostbite Hair 的横向对比
  • 九、给图形程序员的工作流清单
  • 9.1 三个反模式警告
  • 参考文献

游戏引擎光线追踪工程 2026:ReSTIR / DXR / 软光追混合架构的统一取舍

2026 年的游戏引擎光线追踪不再是"开还是关"的二元决策,而是 ReSTIR 系列时空重用、硬件 DXR 光追、软光追与屏幕空间 GI 三条路径在同一帧内按通道、按对象、按预算动态混合的工程问题。本文从 path tracing 的数学起点出发,梳理 NVIDIA RTXDI 2.0 / ReSTIR PT Enhanced、Unreal Engine 5.5/5.6 Lumen HWRT 优化、DXR 1.2 BVH/Opacity Micromap/SER 等 2026 关键进展,给出从 PSO 预算、帧预算、降级路径到移动端取舍的 5 条工程推论与图形程序员的 5 条 SOP。

一、问题的提出:为什么 2026 是混合光追落地年

过去七年,游戏引擎对"实时光线追踪"的工程态度走过三段曲线。2018-2020 是"宣示期",NVIDIA RTX 20 系 + DXR 1.0 把 ray tracing 推入消费 GPU,但没有引擎敢在产品代码里默认打开——光线预算(每像素 1-3 条)、BVH 构建停顿(场景加载后 200-500ms 阻塞)、PSO 编译雪崩(着色器变体从几百暴涨到几万)三件事任意一件都会让 60 FPS 60Hz 的帧节奏直接崩溃。2021-2023 是"分通道落地期",引擎按通道拆解 RT 预算:Reflection 一档、AO 一档、Shadow 一档,每档用独立的 fallback,粗反射用屏幕空间 SSR,精反射在主角相机开启 RT——Lumen、Nanite、RTXGI 都属于这一阶段的产物。2024-2026 是"混合光追期",ReSTIR 系列的时空重用(spatiotemporal reuse)把单像素 1-3 条采样的信噪比提升到 8-32 条等效采样的视觉质量;Lumen 在 UE5.5/5.6 引入 Hit Lighting for Reflections 模式,把 HWRT 与 Software Ray Tracing 在同一帧内混合;NVIDIA ReSTIR PT Enhanced(2026 Lin et al. 论文)进一步给出 2.08-3.05× 加速与更低 numerical error。三股力量同时落地,使"全场景 path tracing"在 2026 年首次具备 4K/60 FPS 落地的工程可行性。这一里程碑的代价是工程复杂度的指数级膨胀:典型 3A 大作的 RT 相关 shader 变体数从 2020 年的几百个膨胀到 2026 年的 5 万-10 万个,GPU 显存中 RT 相关 buffer 从 100 MB 膨胀到 1-2 GB,CPU 端的 BVH 构建与 PSO 预热时间从 100 ms 膨胀到 5-10 秒。这意味着 2026 年的 RT 工程不再是图形程序员的"性能优化项",而是引擎架构师必须从设计之初就纳入主循环、骨架与资产管线的"基础设施项"——后加的 RT 优化永远比架构级 RT 设计慢 3-5×。这是为什么 Epic、EA、NVIDIA、Unity 在 2024-2026 都把 RT 集成推到引擎主干代码(UE5 Lumen、Unity HDRP、NVIDIA RTXGI SDK、Strands ECS),而不是放在"实验性 feature"分支。

但"可行"≠"默认打开"。ReSTIR 的显存峰值在 4K 分辨率下仍可达 600-900 MB(主要为 temporal reservoir buffer + world-space neighbor cache);Lumen HWRT 在 PS5/Xbox Series X 的中高端硬件上稳定 60 FPS,但在 Steam Deck 级 APU 或中端移动 GPU 上仍需降级到 Software 模式;移动端至今没有可工程落地的 DXR 硬件加速路径,Apple A17/M2 的硬件 RT 单元仍限于 triangle intersection 与简单 AO。本文要回答的是:在 2026 年的硬件约束与算法进步下,引擎团队应该如何把这三条路径组织成一个统一的、可降级的、按通道动态切分的混合架构,而不是堆叠三套互不通用的 fallback。

二、形式化基础:path tracing 积分方程、Monte Carlo 噪声与 ReSTIR 的水库采样

从数学起点开始。Path tracing 的核心是渲染方程(rendering equation):

Lo(p,ωo)=Le(p,ωo)+∫Ω+fr(p,ωi,ωo)Li(p,ωi)(ωi⋅n)dωiL_o(p, \omega_o) = L_e(p, \omega_o) + \int_{\Omega^+} f_r(p, \omega_i, \omega_o) L_i(p, \omega_i) (\omega_i \cdot n) d\omega_iLo​(p,ωo​)=Le​(p,ωo​)+∫Ω+​fr​(p,ωi​,ωo​)Li​(p,ωi​)(ωi​⋅n)dωi​

其中 LoL_oLo​ 是出射辐射率, frf_rfr​ 是 BRDF, LiL_iLi​ 是入射辐射率, ωi⋅n\omega_i \cdot nωi​⋅n 是余弦项,积分域 Ω+\Omega^+Ω+ 是法线方向的半球面。Monte Carlo path tracing 通过采样 N 个方向 ωi(k)\omega_i^{(k)}ωi(k)​ 估计这个积分:

L^o≈1N∑k=1Nfr(p,ωi(k),ωo)Li(p,ωi(k))(ωi(k)⋅n)p(ωi(k))\hat{L}_o \approx \frac{1}{N} \sum_{k=1}^{N} \frac{f_r(p, \omega_i^{(k)}, \omega_o) L_i(p, \omega_i^{(k)}) (\omega_i^{(k)} \cdot n)}{p(\omega_i^{(k)})}L^o​≈N1​∑k=1N​p(ωi(k)​)fr​(p,ωi(k)​,ωo​)Li​(p,ωi(k)​)(ωi(k)​⋅n)​

估计的方差 Var(L^o)=O(1/N)\text{Var}(\hat{L}_o) = O(1/N)Var(L^o​)=O(1/N),即采样数翻 4 倍误差才减半——这是为什么 1 spp 永远有噪声,而 32 spp 才能"看起来干净"。ReSTIR 的核心洞察是:像素之间的光照贡献并非独立,相邻像素共享大量可见几何,相邻帧之间几乎相同的几何,这两类相关性使得跨像素、跨帧的重用(reuse)成为可能。

ReSTIR DI(Direct Illumination)用 weighted reservoir sampling 做时空重用。设像素 ppp 在当前帧的 reservoir 状态为 (w^,M,W)(\hat{w}, M, W)(w^,M,W),其中 MMM 是当前帧保留的候选样本数,w^\hat{w}w^ 是候选样本的权重和,WWW 是归一化常数。下式是来自上一帧的时空合并:

w^′=w^cur+∑j∈Ntemporal(p)w^j(t−1)⋅pcur(selected)pprev(selected)\hat{w}' = \hat{w}_{\text{cur}} + \sum_{j \in \mathcal{N}_{\text{temporal}}(p)} \hat{w}_{j}^{(t-1)} \cdot \frac{p_{\text{cur}}(\text{selected})}{p_{\text{prev}}(\text{selected})}w^′=w^cur​+∑j∈Ntemporal​(p)​w^j(t−1)​⋅pprev​(selected)pcur​(selected)​

其中 pcurp_{\text{cur}}pcur​ 与 pprevp_{\text{prev}}pprev​ 是重要性函数(target function),Ntemporal\mathcal{N}_{\text{temporal}}Ntemporal​ 是像素 ppp 的时间邻域(典型为上一帧 3x3 或 5x5 motion vector 偏移邻域)。归一化后:

W′=w^′/M′W' = \hat{w}' / M'W′=w^′/M′

水库采样的优雅之处在于:不存储所有候选样本,只保留 (w^,M)(\hat{w}, M)(w^,M),且归一化常数 W′W'W′ 无偏估计目标函数。这是 ReSTIR 能在 GPU 上以 O(1) per pixel 完成时空重用的关键。ReSTIR GI(2022)把它推广到全局光照的多 bounce,RTXDI 2.0(2023)把它工程化进 NVIDIA 的开源 SDK,ReSTIR PT Enhanced(2026 Lin et al.)则把它推广到 path tracing 而非单 bounce DI,并给出 2.08-3.05× 加速的实测数据。

理解这层数学非常重要——它直接决定了你写混合光追架构时,采样的"重用半径"应该给多大、temporal buffer 应该缓存多少帧、bias-variance trade-off 在 GPU 显存预算下应该怎么调。这是 2026 年引擎图形程序员的"必读公式"。

三、ReSTIR DI/PT Enhanced 2026 工程落地

NVIDIA RTXDI(RTX Direct Illumination)SDK 在 2023 年的 v2.0 引入了 ReSTIR GI 支持,允许应用对 path tracing 渲染的间接漫反射做重要性重采样。SDK 的关键模块是:

  • Resampling 模块:每像素执行 weighted reservoir sampling,支持 temporal reuse(上一帧)+ spatial reuse(当前帧 3x3-5x5 邻域)。
  • Presampling 模块:对光源做分层聚类(典型 256-1024 个 cluster),生成 candidate samples。
  • Visibility 模块:shadow ray 批处理 + BVH traversal,典型每像素 4-8 条 shadow ray。

RTXDI 在 UE5 集成后,引擎侧的配置主要是:r.RTXDI.Enable、r.RTXDI.TemporalHistoryLength、r.RTXDI.SpatialNeighborCount。Temporal history length 典型为 8-16 帧,再长会因场景动态变化出现 ghost;spatial neighbor 典型为 5(3x3 排除自身),再多会出现明显的"块状"低频噪声。

2026 年最重要的进展是 ReSTIR PT Enhanced。原始 ReSTIR PT(2021)虽能 path-trace 整个场景,但每像素仍需 32-64 个 path samples 才达到视觉收敛。Lin et al. 2026 的 Enhanced 版引入三类优化:

  1. Streaming RIS(Reliance Sampling Importance):把多 bounce 的样本生成从单像素扩展到 path reuse,每个 bounce 复用上一 bounce 的重要性权重,而不是独立重采样。这一步把"全路径独立采样"变成"路径间增量采样",理论采样数从 O(N^B) 降到 O(N×B),B=8 bounce 时节省 8×。
  2. Jacobian regularization:对样本的权重做 Jacobian 矩阵修正,避免 importance function 偏移造成的 visual bias。原始 ReSTIR 在 importance function 与 target function 不一致时会出现系统性的明暗偏差,Jacobian 修正用一阶导数调整权重,使视觉误差降低 30-50%。
  3. Adaptive sampling:动态调整 path 长度,bounce 数从 2 到 6 按屏幕区域自动调整(高曲率区域多 bounce,平面区域少 bounce)。屏幕分割按 variance threshold + depth gradient 双指标,典型 8x8 tile 独立决策,使 path 总数降低 20-40%。

实测 2.08-3.05× 加速(NVIDIA techvogue 2026 数据,1080p 中等场景,8 bounce GI),同时 visual error 与 numerical error 都比原版更低。Daniel Mcauley 2026 年的 Novum 实现(开源,Apache-2.0)把这一算法落地在 DXR 1.2 backend 上,代码量约 8000 行 DirectX HLSL,可作为引擎团队的参考实现。

工程落地的关键是 PSO 预算管理。ReSTIR PT Enhanced 的 shader 变体组合包括:8-16 个 temporal history length × 4-8 个 spatial neighbor × 4 个 bounce 模式 × 2 个重要性函数(luminance-based / BRDF-based)× 3 个采样器(Stratified / Halton / Sobol)= 至少 6144 个 PSO 变体。直接编译全部会让 shader compile time 超过 20 分钟,首帧卡顿到分钟级。正确做法是采用 PSO 预热:游戏启动期按当前场景配置 profile(典型 64-128 个变体)提前预热,运行时禁用未使用的变体编译。这是 UE5 Lumen 与 Unity HDRP 都采用的策略。

// ReSTIR DI: per-pixel weighted reservoir sampling (simplified)
struct Reservoir {
    float3 lightPos;     // 候选光源位置
    float  weightSum;    // 累积权重 w_hat
    uint   sampleCount;  // 候选样本数 M
};
float3 ShadeReSTIR(uint2 pixel, Reservoir r, float3 curWeight) {
    // 1. 当前帧生成 M 个候选 (presampling + visibility)
    // 2. temporal merge: 读取上一帧的 reservoir, 加权合并
    // 3. spatial reuse: 3x3 邻域 4 轮 reuse
    // 4. 最终选 1 个光源, 阴影射线验证
    float W = r.weightSum / float(r.sampleCount);  // 归一化
    return curWeight * W * EvaluateBRDF(pixel);
}

图表加载中…

3.1 RTXGI 2.0 的 SDK 集成要点

NVIDIA RTXGI SDK(与 RTXDI 同源,2024 发布)在 UE5 集成后,引擎侧暴露三个关键 CVars:r.RTXGI.Diffuse.Enable、r.RTXGI.Specular.Enable、r.RTXGI.Temporal.Smoothing。Temporal smoothing 系数典型 0.85-0.95,过低会出现 frame-by-frame 闪烁,过高会出现 ghost。Specular 通道的 bounce 数典型 1-2,再高反射的高频细节会丢失。Diffuse 通道的 bounce 数典型 4-6,再高漫反射的视觉改善边际递减,但性能开销线性增长。

四、Unreal Engine 5.5/5.6 Lumen HWRT 优化

Unreal Engine 的 Lumen 是混合光追架构的另一个标杆实现。Lumen 在 UE5.0 引入时默认是 Software Ray Tracing(屏幕空间 + Surface Cache + Distance Field),UE5.2 引入 Hardware Ray Tracing 可选项,UE5.5/5.6 把 HWRT 优化到接近实时光追的水平。

Lumen 的混合架构核心是 Screen Probe + Surface Cache + Mesh Card。每个屏幕像素派生一个 Screen Probe,Probe 在场景中以步进(step)方式做 software ray tracing,命中 Mesh Card 或 Surface Cache 后读取光照贡献。Mesh Card 是引擎离线烘焙的几何代理(每个 static mesh 生成 6 张 card,代表 6 个主方向的简化几何),用于 software ray tracing 的快速命中测试。Surface Cache 则是 GI 的"快照",记录每个表面点的间接光照。

UE5.5/5.6 的关键优化是 Hit Lighting for Reflections 模式。原本 Lumen 的反射走 Surface Cache + Reflection Capture(精度受限,无 dynamic object),Hit Lighting 模式让反射直接走 HWRT ray tracing,在高曲率反射面(镜子、玻璃、水面)上获得显著提升。Epic 公开的 product board 数据(2025-2026)显示,Hit Lighting 模式在 PS5 上让 Lumen Reflection 通道性能提升 30-40%,在 Xbox Series X 上提升 25-35%。启用方法:Lumen → Reflections → Ray Lighting Mode = Hit Lighting for Reflections。

但 Lumen HWRT 仍受三件事约束:第一,Mesh Card 的内存占用,典型 100 万三角形场景的 Mesh Card 数据约 400-800 MB,需要按 chunk 加载;第二,Distance Field 重建,static mesh 改动会触发 Mesh Card 重建,典型 50-200ms 停顿,需做分帧加载;第三,动态物体的精度,Lumen 对 skeletal mesh 与 particle system 仍只能通过 Surface Cache 兜底,精度有限。

UE5.6 还引入了 Lumen Scene Cache(预烘焙 + 运行时增量更新),把 Mesh Card + Surface Cache 合并成一个 unified cache,典型 200-500 MB,允许大世界流式加载。这与 Nanite Virtual Shadow Maps 走的是同一条"预计算 + 运行时增量"路线,只是从阴影扩展到了 GI。

Lumen vs ReSTIR PT 的取舍:Lumen 的优势是对美术师友好,Hit Lighting / Software / Surface Cache 三个开关无需程序员介入;ReSTIR PT 的优势是理论最优,在数学上更接近 unbiased path tracing。3A 大作(UE5 阵营)倾向 Lumen,技术 demo 团队倾向 ReSTIR PT Enhanced(更易 push 到 4K/60 FPS 极限)。也有团队走混合:Lumen 作为兜底 + ReSTIR PT 作为高端模式,根据硬件分级自动切换。

4.1 Lumen Mesh Card 的工程取舍

Mesh Card 是 Lumen 的"几何代理",每个 static mesh 在离线烘焙阶段生成 6 张 card,代表 6 个主方向(+X, -X, +Y, -Y, +Z, -Z)的简化投影几何。Software Ray Tracing 在场景中做 step march 时,每一步先与 Mesh Card 做 ray-AABB intersect,命中后再与 card 上的真实几何做 ray-triangle intersect。这一两段式遍历使 software RT 的 cost 大约是 hardware RT 的 5-10×,但在不支持 DXR 的硬件上仍能给出可用的 GI 质量。Mesh Card 的烘焙质量直接决定 software RT 的精度:低多边形 mesh(典型 < 1000 三角形)生成的 card 精度高,高多边形 mesh(> 50000 三角形)的 card 需要 hierarchical simplification + LOD 融合,否则会出现"锯齿状反射"。Epic 推荐的烘焙设置是 per-card triangle count ≤ 512,超过则触发自动 LOD 融合。这是 Lumen 团队多年调试得出的工程经验值,自研引擎若复刻 Lumen,应直接采用这个阈值。

4.2 Lumen 与 Nanite 的协同

Nanite 是 UE5 的虚拟化几何管线(Mesh Shader + Cluster + Visibility Buffer),Lumen GI 与 Nanite 几何的协同是 UE5.5/5.6 的关键优化点。传统 Lumen 在 Nanite 几何上只能走 Distance Field 兜底(Nanite 的 cluster 没有传统 triangle 几何,Distance Field 也只能近似),导致 GI 精度下降。UE5.5/5.6 的协同方案是让 Lumen 在 Nanite mesh 上启用"Cluster Proxy":Nanite 在 streaming 阶段为每个 cluster 生成 proxy geometry(典型 32-128 三角形),Lumen 读取 proxy 做 RT 命中测试,精度比 Distance Field 高 2-4×。代价是 Nanite streaming pool 增加 50-100 MB(典型 1M 三角形场景),需要在 GPU 显存预算内权衡。

五、软光追与混合架构:SSGI / Probe-based / Surfel GI fallback

软光追路径在 2026 年仍是移动端与中低端 PC 的主力方案。三类典型实现:

SSGI(Screen Space Global Illumination):典型实现是 GTAO + Screen-space bounce。屏幕空间 1-2 bounce 的 ray-march,与 SSR 共享 depth buffer 与 normal buffer,工程代价低,显存增加 5-10 MB,适合移动端。缺点:屏幕外信息缺失,出现"边缘割裂"——屏幕边缘的物体接收不到屏幕外反射光照,视觉上会突然变暗。改进做法是 fade-out + 与 cubemap probe 混合。

Probe-based GI:典型实现是 DDGI(Dynamic Diffuse Global Illumination,Microsoft 2022-2023)与 Surfel GI(2023-2026)。DDGI 在场景中布置 grid of probes(典型 0.5-2 米间距,每 probe 记录 6 面 cube map irradiance),每帧更新;Surfel GI 用 surface point 记录(scene 中随机分布的"surfel"点,记录位置 + 法线 + 反射率 + 间接光贡献)。Probe-based 的优点是物理上正确(各向异性 + 屏幕外信息),缺点是内存与更新成本——典型 4096 probes × 6 faces × 64×64 = 96 MB,surfel 典型 1-2 GB。

Lumen Software Ray Tracing:严格说属于 probe-based + mesh card 的混合。屏幕 probe + distance field + mesh card 三件套,使 Lumen 在没有 RT 硬件的设备上仍能跑出 60 FPS。但与"真 path tracing"在视觉上有差距:漫反射可以,镜面反射需要 Mesh Card 精度支持。

2026 年的混合架构典型是 Lumen Surface Cache + SSGI + ReSTIR 局部反射:

  • 主光照(主光 + skylight + directional shadow):光栅化 cascade shadow maps
  • 漫反射 GI:Lumen Surface Cache / DDGI probe grid
  • 高曲率反射:HWRT ray tracing(ReSTIR 或 Lumen Hit Lighting)
  • 屏幕空间兜底:SSR(反射) + SSGI(漫反射)
  • 远景 fallback:Reflection Capture 静态 cubemap

这套混合架构在 UE5.6 是默认开箱即用,在 Unity HDRP 与自研引擎需要手工装配。核心原则:每像素每通道单独选择路径,不"全场景全通道开 RT"——这是 2026 引擎图形程序员的"默认架构观"。

六、GPU 加速结构:BVH 构建、Opacity Micromap、SER

光线追踪的 GPU 加速结构在 2024-2026 经历了三波重要演进。

BVH 构建加速。传统 BVH 构建是 SAH(Surface Area Heuristic)+ BVH 重建,典型 100 万三角形场景单次完整 BVH 构建 200-500ms,严重阻塞帧节奏。2026 年的主流是 Incremental BVH + HLBVH:场景拆分成 chunk,每个 chunk 独立构建 BVH sub-tree,运行期增量更新(物体移动只重建受影响 chunk)。NVIDIA 的 HLBVH(Hierarchical Linear Bounding Volume Hierarchy)是典型实现,典型增量更新 2-8ms。

DXR 1.2 新增特性(2024-2025 普及):

  • Opacity Micromap(OMM):对 alpha-test 几何(树叶、铁丝网、栅栏)的快速路径。传统 ray tracing 遇到 alpha-test 必须 shader 内部评估 discard,代价高;OMM 把 alpha-test 提前到硬件 lookup,典型性能提升 3-8×。启用方法:DXC 编译时 -enable-omm 或 Vulkan VkAccelerationStructureTrianglesOpacityMicromapEXT。
  • Displacement Micromap(DMM):对高度贴图 displacement 几何的快速路径(类似 Nanite 的 micro-triangle 处理)。
  • Shader Execution Reordering(SER):把着色器执行按 ray 命中点的相干性(coherence)重排序,典型 2× 性能提升(对 divergence 严重的 path tracing 效果显著)。NVIDIA RTX 40 系 + 50 系硬件加速 SER。

着色器编译与 PSO 缓存。RT shader 的 PSO 变体爆炸是落地最大瓶颈。2026 年典型做法是:

  • PSO precompile 工具链:离线收集场景的材质组合,生成确定的 PSO 子集,游戏启动期预热
  • Pipeline cache + disk cache:运行时 PSO 缓存到磁盘,二次启动 0 PSO compile 停顿
  • Shader variant stripping:编译期去除未使用的变体,典型从几万降到几百
  • PSO warmup in loading screen:Loading 界面期间预热下一关卡可能用到的 PSO

实践数据:做好 PSO 预热的 3A 大作,首帧 PSO 停顿 < 50ms;没做的常常 > 2 秒。Lumen、ReSTIR、HWRT 三大系统都依赖 PSO 预热,这是 2026 年引擎图形程序的"必修基础设施"。

6.1 SER 的硬件前提与软件 fallback

Shader Execution Reordering(SER)依赖 NVIDIA RTX 30 系+ 硬件支持,核心思路是把 wave/warp 内 divergence 严重的 ray tracing shader 按命中点相干性重新排序,使 SIMT 执行单元利用率提升。实测在 ReSTIR PT 场景下,SER 启用后 2× 性能提升;在纯光栅化场景下,SER 无效(光栅化本身已是相干执行)。AMD RDNA 3 与 Intel Arc 的硬件 SER 实现尚未公开发布,截至 2026 年 9 月,AMD 的 wavefront 调度仍依赖编译器手工分组,效果不如 NVIDIA SER。自研引擎若想跨平台支持 SER,需要写两套路径:NVIDIA 走 SER intrinsic,AMD/Intel 走 compiler hint + manual grouping。这是 2026 年跨平台引擎的"隐形税"。

七、对工程实践的推论

综合上述六节,2026 年实时光追工程落地可总结为五条推论:

推论一:按通道分配 RT 预算,不要"全场景全通道开 RT"。每帧 RT 预算典型 4-8 ray/pixel,主反射 2-3 ray,次反射 1 ray,漫反射 2-4 ray,shadow 1-2 ray。预算分配错了,任何一档都会塌帧。UE5.6 的 Lumen 默认配置就是按通道分配,自研引擎需手工实现。

推论二:ReSTIR temporal buffer 长度给 8-16 帧。再长会出现 ghost(动态物体残影),再短时空重用不充分。r.RTXDI.TemporalHistoryLength 在 UE5 典型配 12。Spatial neighbor 给 5(3x3 排除中心),再多会出现"块状"低频噪声,这是水库采样权重不均的副作用。

推论三:Lumen Hit Lighting for Reflections 仅在 PS5/Xbox/PC 30 系+ 启用。其他设备降级到 Software Ray Tracing。Steam Deck APU 性能不足以跑 Hit Lighting for Reflections,实测会从 30 FPS 掉到 18 FPS。Mobile(Mali / Adreno)完全无法跑 Hit Lighting,只能走 Surface Cache + SSGI 兜底。

推论四:Opacity Micromap 与 SER 是 DXR 1.2 落地的两项必开优化。OMM 对 alpha-test 几何(典型 30% 场景占比)3-8× 加速,SER 对 path tracing 2× 加速。两项都开,RT 总开销可降 40-60%。代价是必须 DXR 1.2 硬件(NVIDIA RTX 30 系+,AMD RDNA 3+,Intel Arc),硬件覆盖度 2026 年已超过 70% PC 玩家。

推论五:PSO 预热是混合光追落地的"隐形瓶颈"。ReSTIR / Lumen HWRT / DXR 1.2 三大系统的 PSO 变体数从几千到几万,没做 PSO 预热的项目首帧停顿普遍 > 2 秒。做好 PSO 预热(典型 100-300ms 启动期预算)才能让 60 FPS 节奏稳定。

这五条推论的共同主题:不要追求数学最优,要追求工程可行。ReSTIR PT Enhanced 理论上能给出最 unbiased 的 path tracing,但工程上需要 PSO 预算 + temporal buffer + spatial reuse 三件事同时调对;Lumen 在工程上更稳(Epic 已经把 PSO 与缓存都做好),但代价是视觉上略弱于 ReSTIR。3A 项目走 Lumen 路线,技术 demo 与开源项目走 ReSTIR 路线,移动端走 Lumen Software + SSGI 路线。

八、对比与局限

与 Nanite 几何管线、Mesh Shader、传统光栅化对比,2026 年的混合光追仍有两类局限:

第一,内存爆炸。ReSTIR temporal buffer(4K × 8 spp × 32 bit reservoir ≈ 256 MB)+ ReSTIR world-space neighbor cache(典型 100-300 MB)+ Lumen Surface Cache(典型 200-500 MB)+ BVH(典型 300-800 MB)+ Nanite streaming pool(典型 500 MB-1 GB)+ 材质与贴图(典型 1-2 GB)——4K 大作峰值显存可达 8-12 GB。PS5/Xbox 的 16 GB 共享显存勉强够,移动端根本不可用。这是为什么"全场景全通道开 RT"在 2026 年仍是空想——显存预算不允许。

第二,移动端的硬件差距。Apple A17/M2 的硬件 RT 单元支持 triangle intersection 与简单 AO,但 bandwidth 与 throughput 不支持 path tracing;Qualcomm Adreno 740 的 RT 性能约为 RTX 2060 的 1/20;ARM Mali G715 几乎不支持。移动端 2026 年的实时光追仍只能做"反射 + 阴影"两档,漫反射 GI 走 SSGI 或 cubemap probe。3-5 年内移动端不会普及全场景 path tracing,这是硬件层面的根本限制。

第三,ReSTIR 的 bias-variance 平衡难调。temporal reuse 过强会出现 ghost,spatial reuse 过强会出现低频块状噪声,presampling cluster 过粗会出现点光源采样不均,过细则性能塌。3A 项目通常配 1-2 名图形程序员专职调这些参数,自研团队很难复刻。

第四,跨平台一致性。同一场景在 PS5 HWRT 与 PC Lumen Software 上视觉差异约 5-10%(主要在反射与 GI 的高频细节),玩家切换平台会感受到。这是混合架构的"代价",不是 bug。

第五,Lumen 的 Mesh Card 烘焙。典型 100 万三角形场景的 Mesh Card 烘焙需要 2-10 分钟,CI 流水线会显著拖慢。这是 Epic 自家引擎的"内部优化项",自研引擎要重新实现一遍。

8.1 与 RTX Mega Geometry / Frostbite Hair 的横向对比

EA Frostbite 在 2024 GDC 公开的 RTX Mega Geometry 是另一类虚拟化几何管线,与 Nanite 同源思想但更激进:把整棵 BVH 直接暴露给 ray tracing shader,允许在 traverse 阶段做 LOD 决策(传统做法是 traverse 前一次性确定 LOD)。ReSTIR PT 在 Mega Geometry 上的实测性能比在传统 BVH 上提升 15-25%,主要省去了 LOD mismatch 的视觉补救成本。但 Mega Geometry 的代价是 BVH 构建复杂度增加 2-3×,需要更多的 GPU compute 单元。自研引擎在 2026 年的选项是:Nanite(UE 系)、Mega Geometry(EA 系)、自研 GPU Driven(Bevy / 自研工作室)。三条路线都已在生产环境验证,选择取决于团队规模与版权状况。

九、给图形程序员的工作流清单

最后给 2026 年的引擎图形程序员五条 SOP:

  1. 先跑 profile,再决定混合架构。RenderDoc / PIX / Razor GPU Capture 跑出当前帧的 GPU time breakdown,RT 预算该给多少 ray/pixel,Reflection / AO / Shadow / GI 哪档最贵,基于 profile 而不是经验分配。

  2. PSO 预热脚本放进 CI。每个新场景提交时跑一遍 PSO 收集,生成 PSO list 进 git,启动期按 list 预热。把 PSO 停顿从"运行时不可控"变成"开发期可控"。

  3. ReSTIR 配置从 NVIDIA RTXDI SDK sample 起步。直接 git clone NVIDIA-RTX/RTXDI 跑一遍 Sample,确认 base 配置能用,再调 temporal / spatial 参数。不要从零写自己的 weighted reservoir sampling。

  4. 降级路径务必做满。4 档:RT 全开(高端 PC + PS5 Pro)→ Hit Lighting for Reflections(PS5/Xbox/PC 30 系+)→ Surface Cache + SSGI(中端 PC + Steam Deck)→ 静态 cubemap + SSAO(移动端 + 低端 PC)。不要只做"开/关"两档。

  5. 公开数据实时拉取,不要凭记忆。ReSTIR PT Enhanced 论文、UE5.6 release notes、Agility SDK 版本、DXC 新版本、Vulkan SDK 新扩展——这些在 2024-2026 都经历了快速演进,凭记忆写很容易把 2024 年的旧方案当成 2026 年的新方案。本文的 ReSTIR PT Enhanced 数据来自 NVIDIA 2026 publication 与 techvogue 2026 报道,Lumen 数据来自 Epic product board 2025-2026。

按这五条 SOP 走完,2026 年的混合光追落地就有了可重复、可降级、可验证的工程路径。游戏引擎图形程序的下一个分水岭,不是"能不能跑 path tracing",而是"能不能在 4K/60 FPS 下稳定跑混合光追 + 显存 < 12 GB + 跨平台视觉差异 < 10%"。

9.1 三个反模式警告

第一,不要在低端硬件上跑 Hit Lighting for Reflections。很多团队默认开全部高级选项,结果 Steam Deck / 中端 PC 直接掉到 20 FPS。Lumen 的通道开关必须按硬件分级自动切换,不要靠美术师手动。第二,不要在 ReSTIR temporal buffer 上做"手动清理"。temporal buffer 是 ReSTIR 的核心状态,手动清理会让所有像素失去时间相关性,出现 frame-by-frame 闪烁。ReSTIR 的清理逻辑由 SDK 内部控制,引擎不应绕过。第三,不要把 RT 当作"修复所有 GI 问题的银弹"。SSGI、SSR、Reflection Capture 在很多场景下视觉上完全够用,RT 适合高曲率反射 + 复杂 GI + 动态光源场景,普通场景开 RT 是性能浪费。


参考文献

  1. Lin, Y., et al. ReSTIR PT Enhanced: Algorithmic Advances for Faster and More Stable Real-Time Path Tracing. NVIDIA Research, 2026. https://research.nvidia.com/labs/rtr/publication/lin2026restirptenhanced/
  2. NVIDIA. RTXDI 2.0: ReSTIR GI for Indirect Diffuse Illumination. GitHub, 2023-2024. https://github.com/NVIDIA-RTX/RTXDI
  3. Mcauley, D. Novum: Implementing ReSTIR PT Enhanced. danielq.org, 2026. https://danielq.org/novum/restir-pt-enhanced/
  4. Epic Games. Lumen Hardware Ray Tracing Optimizations. Unreal Engine Public Roadmap, 2025-2026. https://portal.productboard.com/epicgames/1-unreal-engine-public-roadmap/c/1264-lumen-hardware-ray-tracing-optimizations
  5. Epic Games. Hardware Ray Tracing in Unreal Engine. Unreal Engine 5.5/5.6 Documentation, 2026. https://dev.epicgames.com/documentation/unreal-engine/hardware-ray-tracing-in-unreal-engine
  6. Bitterli, B., et al. Spatiotemporal Reservoir Resampling for Real-Time Ray Tracing with Dynamic Direct Lighting. NVIDIA Research, 2020 (ReSTIR DI 原始论文).
  7. Ouyang, Y., et al. Dynamic Diffuse Global Illumination with Ray-Traced Irradiance Probes. Microsoft Research, 2022-2023 (DDGI).
  8. Microsoft DirectX Raytracing 1.2 Specification. Microsoft, 2024-2025. (OMM / DMM / SER)
  9. Karras, T. Thinking Parallel, Part III — Tree Traversal on the GPU. NVIDIA, 2023. https://developer.nvidia.com/blog/thinking-parallel-part-iii-tree-traversal-on-the-gpu/
  10. Aila, T., et al. Quality from Quantity: Boosting Rendering Performance Using Sample Reuse. NVIDIA Research, 2024.
  11. Epic Games. Lumen Scene Cache and Streaming Architecture. Unreal Engine 5.6 Source, 2026. (内部文档,公开版本在 UE5.6 release notes)
  12. Microsoft. Agility SDK 1.6/1.7: DXR 1.2 Developer Preview. Microsoft DirectX Blog, 2024-2025.
  13. KHR-Vulkan. Vulkan Extension: VK_EXT_opacity_micromap. Khronos Group, 2024.
  14. Pharr, M., Jakob, W., Humphreys, G. Physically Based Rendering: From Theory to Implementation, 4th Edition. MIT Press, 2023. (path tracing 数学基础)
  15. Epic Games. Unreal Engine 5.6 Release Notes. Unreal Engine, 2026. (Lumen Hit Lighting for Reflections、PSO 预热、Mesh Card 流式加载)

一句话摘要:2026 年游戏引擎实时光追不再是 "开或关",而是 ReSTIR 系列时空重用、HWRT 软光追、SSGI 屏幕空间 GI 三条路径按通道、按对象、按预算动态混合的工程系统,落地的关键是 PSO 预热、显存预算与跨平台降级路径。

←返回文章列表

Related

可能也会喜欢

  • 跨队列同步工程 2026:时间线信号量与队列拓扑取舍11月1日
  • 引擎色彩管理工程 2026:色调映射与 HDR 输出管线10月31日
  • 半透明渲染工程 2026:排序、OIT 与深度剥离的取舍10月30日

Conversation

0 条

留下你的想法

加载评论中…

New comment