#GI
SDFGI 技术解析:从距离场到实时全局光照
Godot引擎在4.x版本中引入了一项全新的GI方案——**SDFGI(Signed Distance Field Global Illumination)**。它的使命是:**一键开启,实时更新,全Vulkan设备支持,同时提供漫反射和镜面反射,甚至能驱动体积雾**。不依赖光线追踪硬件,甚至连VR都不强制使用TAA。 其核心技术建立在**Morgan McGuire的DDGI(Dynamic Diffuse Global Illumination)**思想之上,但将探针更新机制改为**有符号距离场球体追踪**,从而摆脱了对硬件RT的依赖。这份解析基于Godot联合创始人Juan Linietsky的公开技术讲义,我将从零开始,一步步剥离SDFGI的每一个细节,帮助你彻底理解背后的图形学魔法。
现代实时 GI 技术全景
本文全面梳理了实时全局光照技术的演进脉络,深度解析 SSGI、PRT、VXGI、Surfel、DDGI 到 ReSTIR GI 的核心原理,并对比了 Lumen 与 APV 管线架构,提供工业级 GI 选型指南。
ReSTIRGI:从 RIS 到 ReSTIR GI / PT
ReSTIR 是过去五年间实时光线追踪领域最重要的算法突破之一,它的关键贡献并不是发明了一个全新的采样方法,而是把一个 2005 年就被提出但**长期没有被实时社区注意到**的算法 —— RIS (Resampled Importance Sampling) [Talbot 2005] —— 与 GPU 友好的水库采样 (Weighted Reservoir Sampling) 结合,并加入**时空复用**机制,使其在 1 spp 下也能产出近似离线渲染品质的结果。
DDGI「动态漫反射全局光照」:架构与工程概览
漫反射 GI 的本质特征在于其低频性与强空间相关性。在合理的网格密度下,采样通常不会产生明显的走样。这意味着我们无需为每个像素独立追踪光线。DDGI 的核心思想是在场景中放置一组动态光照探针(Probes),每个探针缓存全方向的入射辐照度,并在着色阶段通过空间插值还原间接光照。
深入理解球谐光照 (Spherical Harmonics):从数学理论到工业级代码实践

球谐光照 (SH) 是实时渲染里”压缩光照”的经典手段:把一张几 MB 的 HDR 环境图,浓缩为 27 个浮点数 (9 系数 × RGB),运行时只需几个 dot 指令就能还原漫反射环境光。这篇笔记主要讲述了数学推导、工程实现、约定差异「最容易踩坑的部分」。

PRTGI「预计算辐照度全局光照」:从理论到工程实践
PRTGI 把光线追踪中"光线与场景求交"这一性能瓶颈下放到离线烘焙,运行时只做光照重建(Relight),从而让动态光源也能享受到"看似光追"的全局光照。本文从渲染方程切入,讲清楚 SH 球谐编码、探针布置、运行时插值,以及工业界绕不开的漏光与性能问题。
「Custom SRP」:全局光照与环境
静态对象用 Lightmap、动态对象用 Light Probe 球谐函数(SH Ringing 的吉布斯现象溯源)、镜面反射统一走 Reflection Probe(Box Projection 的 AABB 前提与视差校正局限)。从 Meta Pass 作为 GI 烘焙源头,到 LPPV 在移动端 3D 纹理 Cache Miss 的带宽警告。