全局光照 GI
2026/7/26大约 5 分钟
全局光照 (Global Illumination) - 光在场景中的弹跳
引言:直接光 vs 间接光
一个点收到的光分两部分:
- 直接光(Direct):直接来自光源。
- 间接光(Indirect / GI):从其它表面弹跳来的光 —— 红墙旁的白墙会泛红、阴影里并非全黑。
全局光照 = 模拟间接光(多次弹跳)。它是"真实感"的关键,但也是最贵的部分(真正的多次弹跳是全局积分问题)。实时渲染的所有 GI 方案,本质都是在质量、动态性、性能之间做近似与取舍。
一、GI 方案总览
核心分野:烘焙(质量高、几乎免费运行时,但静态、占内存、不可动)vs 实时(动态、支持变化,但更贵、有噪声/延迟)。
二、烘焙类 GI
Lightmap(光照贴图)
- 原理:离线计算静态物体表面的间接光(含多次弹跳),烘焙成一张光照贴图,运行时直接采样叠加。
- 优点:质量高(可做全局光线追踪级烘焙)、运行时几乎零成本。
- 缺点:仅静态物体、静态光;占内存与磁盘;烘焙耗时;改光需重烘。
- 需要模型有第二套 UV(Lightmap UV,不重叠)。
Light Probe(光照探针)
- 原理:在空间中布置探针,烘焙各探针处的环境光照(通常用球谐 SH 存储);动态物体移动时插值附近探针,获得间接光。
- 补足了 Lightmap 的空缺 —— 让会动的角色/物体也能吃到烘焙 GI。
Reflection Probe(反射探针)
- 烘焙局部环境的 Cubemap,供镜面反射采样(配合 PBR 的镜面 IBL)。
| 烘焙方案 | 服务对象 | 存储 |
|---|---|---|
| Lightmap | 静态表面的漫反射 GI | 光照贴图纹理 |
| Light Probe | 动态物体的漫反射 GI | 球谐系数(探针网格) |
| Reflection Probe | 镜面反射 | Cubemap |
三、实时 GI
屏幕空间 GI / 反射(SSGI / SSR)
- 原理:在屏幕空间用已有的深度/颜色缓冲,光线步进(ray marching)估计间接光/反射。
- 优点:全动态、开销相对可控、无需预计算。
- 缺点:只能利用屏幕内可见的信息 —— 屏幕外、被遮挡的内容无法贡献,边缘出屏会瑕疵;有噪声,需降噪。
Lumen(UE5,实时 GI + 反射)
- 核心思想:混合方案 —— 用屏幕空间 + 软件/硬件光线追踪对场景做距离场/网格的光线求交,实现全动态的多弹跳 GI 与反射,无需烘焙。
- 优点:动态光照/可变场景下仍有可信 GI;与 Nanite 配合。
- 代价:开销较高,有一定噪声/延迟,低端设备吃力。(细节以 UE 版本文档为准)
DDGI(Dynamic Diffuse GI,探针 + 光追)
- 核心思想:把 Light Probe 思路实时化 —— 用光线追踪动态更新一张探针体积里的辐照度(含可见性),运行时插值。相当于"会实时更新的 Light Probe"。
- 优点:动态、较平滑、相对可扩展。
- 代价:需光追能力,探针分辨率限制细节。
其它
- VXGI(体素锥追踪):把场景体素化,用锥追踪估间接光;较老、开销大。
- 光线追踪 GI(路径追踪的实时近似):最物理,但最贵,依赖 RT 硬件 + 强降噪。
四、横向对比
| 方案 | 动态性 | 质量 | 运行时开销 | 主要限制 |
|---|---|---|---|---|
| Lightmap | 静态 | 高 | 极低 | 只静态、占内存、需重烘 |
| Light Probe | 动态物体 | 中 | 低 | 探针密度限制精度 |
| SSGI/SSR | 全动态 | 中 | 中 | 只用屏幕内信息、边缘瑕疵、噪声 |
| Lumen | 全动态 | 高 | 高 | 低端吃力、噪声/延迟(UE5) |
| DDGI | 全动态 | 中-高 | 中-高 | 需光追、探针分辨率 |
| RT GI/路径追踪 | 全动态 | 最高 | 最高 | 需 RT 硬件 + 降噪 |
五、实践选型
- 移动端 / 性能敏感:Lightmap(静态)+ Light Probe(动态物体)+ Reflection Probe 是稳妥、廉价的经典组合。
- 需要动态时间/可破坏场景:考虑 SSGI(轻)或 Lumen/DDGI(重,需硬件支撑)。
- 高端 PC/主机、追求画质:Lumen / RT GI。
- 混合:常见做法是"烘焙打底 + 屏幕空间补充",兼顾成本与动态。
GI 是画质与性能矛盾最尖锐的领域之一,务必结合性能分析按目标平台选型。
附:核心概念速查
| 概念 | 说明 |
|---|---|
| 间接光 / GI | 从其它表面弹跳来的光,真实感关键,最贵 |
| Lightmap | 烘焙静态表面 GI 到纹理,运行时几乎免费 |
| Light Probe | 烘焙空间光照(SH),供动态物体插值 |
| Reflection Probe | 烘焙 Cubemap 供镜面反射 |
| SSGI/SSR | 屏幕空间 GI/反射,全动态但只用屏幕内信息 |
| Lumen | UE5 混合实时 GI+反射,全动态、较贵 |
| DDGI | 光追实时更新的探针体积 GI |
| 球谐(SH) | 紧凑存储低频环境光照的手段 |
总结
- 全局光照(GI)模拟间接光的多次弹跳,是真实感渲染的核心,也是性能开销最大的环节之一。
- 烘焙类方案(Lightmap、Light Probe、Reflection Probe)质量高、运行时开销低,但仅适用于静态场景和静态光照。
- 实时 GI 方案(SSGI、Lumen、DDGI 等)支持动态光照和可变化场景,但需要更高的计算开销,并伴随噪声或延迟问题。
- 方案选型需在质量、动态性和性能之间权衡,根据目标平台选择合适的组合策略。
