Base-UE与Unity6全局光照方案对比
全局光照(Global Illumination,GI)是跨引擎比较时最容易吵起来的话题。UE 用户觉得 Lumen 之后这事已经解决了,Unity 用户觉得 APV 的质量和可调性更好,而两边的讨论经常不在同一个层面上——有人说的是间接光能不能实时响应光源移动,有人说的是动态物体接的间接光准不准,还有人把环境反射采样也算进了 GI。
这篇用一套统一的框架把三个引擎的方案归位:先按「光最终被预计算到哪里」分出四条传输通道,再分别展开 UE4、UE5 与 Unity 6 的具体实现,最后回到对比、症状排查和选型判断。范围是 UE 4.27 及以前、UE 5.x 稳定特性、Unity 6(6000.x)。
一、先对齐术语
GI 的两个组成部分
GI 等于间接漫反射(diffuse indirect)+ 间接镜面反射(specular indirect)。绝大多数「这里为什么这么亮」「反射为什么不对」的问题,根源都是把这两条链路的来源搞混了。后面每个引擎章节都按这两条分开讲。
四条光传输通道
不管哪个引擎,计算间接光的手段最终都落在下面四条通道里。同一个引擎的不同 GI 方案,区别只是用哪几条通道的组合。
1 | |
读法是:①② 是烘焙,静态质量高但不响应光源变化;③ 是近似实时,成本低但信息不完整;④ 是真实时,质量和成本都最高。一个引擎可以同时用多条通道,比如 UE5 用 ④ Lumen 做主线、用 ① Lightmap 对关键静态区域补强。
烘焙与实时的边界
| 维度 | 烘焙(通道 ①②) | 实时(通道 ③④) |
|---|---|---|
| 计算时机 | 编辑器 / 构建阶段 | 运行时每帧 |
| 光源移动 | 必须重新烘焙 | 自动响应 |
| 静态物体质量 | 最高(可做高精度多次弹射) | 一般(受采样数与时序约束) |
| 动态物体 | 需要探针体系承接 | 天然支持 |
| 迭代成本 | 烘焙耗时 + 内存 | 调参即时,但吃 GPU |
| 硬件门槛 | 低(移动端可用) | 高(尤其硬件光追) |
IBL 不是 GI
IBL(Image-Based Lighting,基于图像的光照)是采样一张环境 Cubemap,用来近似环境镜面反射和一部分天空漫反射。它不计算光在场景中的传播,也不响应场景内光源的位置与强度变化。
所以 SkyLight、Reflection Capture、Reflection Probe 都属于 IBL,不是 GI 系统。它们能做的是「让金属看起来有环境反射」,做不了「红色窗帘把墙染红」这种间接光耦合。
探针的三种数据来源
三套引擎都有「探针」,但数据来源完全不同,这直接决定了质量上限:
| 类型 | 数据从哪来 | 代表 | 质量特征 |
|---|---|---|---|
| 从场景光烘焙 | Lightmapper 把真实光路烘到探针 | UE4/UE5 VLM、Unity 6 APV | 最高,是真正的烘焙 GI |
| 从别的探针插值 | 二次插值已有探针数据 | Unity LPPV、UE4 ILC 的采样阶段 | 精度受源数据限制,只能加密不能提质 |
| 从探针到物体插值 | 在物体采样点读取体积数据 | UE4 ILC | 服务动态物体,精度受体素与探针密度限制 |
这条区分很关键:APV 之所以比 UE4 的 VLM+ILC 质量好,一半靠视差校正,另一半靠它直接从光烘出来、少一层插值。
二、UE 的方案全景
UE4 和 UE5 的 GI 体系是继承 + 换主干的关系:烘焙那套(Lightmap、VLM、Reflection Capture、SSGI)几乎原样保留,UE5 在其上加了 Lumen 作为默认实时 GI 主干。
架构总览
1 | |
Lightmap:静态物体的间接光
Lightmass 把直接光与多次弹射的间接光烘焙到静态几何的 UV2 通道,服务对象是 Static / Stationary 光照模式下的静态部分。限制很明确:UV2 必须合理布局,接缝与拉伸会直接表现为脏迹,光源一移动就得重烘。
UE4 到 UE5 的变化有三点:引入了基于 DXR 的 GPU Lightmass,烘焙速度大幅提升且支持更多次间接弹射;支持 Virtual Texture 的 Lightmap,超大场景可以按需流送以缓解显存压力;定位从「唯一主干」降级为「可选路线」,与 Lumen 二选一。
Volumetric Lightmap 与 ILC:动态物体的间接光
- VLM(Volumetric Lightmap):Lightmass 烘焙出的体素化间接光探针,采用「格子(Cell)+ 砖块(Brick)」的层级结构——光照变化剧烈处拆细、平坦区域合并,存储球谐(Spherical Harmonics,SH)系数。
- ILC(Indirect Lighting Cache):可移动物体不直接做逐像素体积采样,而是通过 ILC 在物体采样点上做空间插值,质量分三档:
Volume Lightmap(多个采样点,物体移动时更新)、Volume(每个物体一个插值点,最省也最差)、None(不接间接光)。 - 一个常见误解:ILC 不是时间累积缓冲,本身不产生拖影。它的问题是「采样点密度低 + 更新不是每帧全量」,导致快速移动物体的间接光跳变或滞后。真正的时序拖影在 Lumen 那一侧。
- 没有视差校正:动态物体贴墙时无法把采样点约束回有效体积内,因此漏光、发暗是这个方案的固有问题。
- 在 UE5 中的状态:VLM + ILC 仍然完整存在,但一旦启用 Lumen,动态物体的间接光就由 Lumen 接管,VLM 基本退居为「不启用 Lumen 时的旧路径」。
UE4 的三条实验性捷径
| 方案 | 原理 | 为什么没成主流 |
|---|---|---|
| LPV(Light Propagation Volumes) | 场景体素化后用球谐在体素格间传播光 | 漏光严重、遮挡不准、质量粗糙,只适合大范围低频照明 |
| DFGI(Distance Field GI) | 基于 Mesh Distance Field 做体素光传播 | 噪点多、边缘泄漏、性能波动大,UE5 中已由 Lumen 取代 |
| DFAO(Distance Field AO) | 用距离场做环境光遮蔽 | 只是 AO 近似,不是 GI,不含颜色弹射;UE5 中仍可用于低成本 AO |
三者在 UE5 中的实际定位:DFAO 仍有价值(便宜的大尺度 AO),LPV 与 DFGI 已被 Lumen 取代,不建议在新项目中考虑。
SSGI:屏幕空间 GI
基于深度与法线在屏幕空间做光线步进,近似间接漫反射。局限也明确:只覆盖画面内可见的像素,屏幕外信息缺失,镜头一转间接光就跳;噪点需要降噪处理。
UE4 中它是实验功能。UE5 中的定位变了:不再是「实时 GI 的备选」,而是关闭 Lumen 时的低成本回退(r.Lumen.DiffuseIndirect.Allow=0 之后由 SSGI 兜底)。
Reflection Capture、SkyLight 与 Planar Reflection
- Reflection Capture:手动放置的 Cubemap 捕获点,负责局部镜面反射,摆放位置不对就会反射错位。
- SkyLight:天空环境 Cubemap,同时提供天空的漫反射(作为 GI 的一个来源)与镜面贡献。
- Planar Reflection:平面镜面反射(水面、地面),质量高但成本随平面数量线性增长。
三者中只有 SkyLight 的漫反射部分参与 GI,其余都是 IBL 近似。
硬件光追 RTGI
利用 DXR 对光线做硬件求交,可以得到真正实时的漫反射与镜面间接光。要求是 RTX 系或兼容 DXR 的显卡,并且要开启 Ray Tracing 项目设置,移动端与低端机不可用。
在 UE4 中它是可选增强,需要自己搭 Denoiser、降噪与采样策略,工程成本不低。在 UE5 中它不再单独暴露为「RTGI」,而是作为 Lumen 的硬件追踪后端(Lumen HWRT)。这条演进很重要:UE5 把硬件光追从一个独立方案变成了 Lumen 的一个质量档。
Lumen:引擎级实时 GI
Lumen 是 UE5 的默认 GI 方案,也是目前三大引擎中唯一开箱即用的完整实时 GI。它的追踪分三层,按可用性逐级回退:
| 层 | 作用 | 说明 |
|---|---|---|
| 屏幕空间追踪 | 最高优先级,最精确 | 对屏幕内可见几何做射线步进,质量与速度最好,屏幕外无效 |
| Surface Cache + Mesh SDF | 兜底屏幕外信息 | 每个网格预生成 6 面卡片缓存 albedo/normal/depth/emissive,配合网格距离场做软件追踪;Nanite 网格的卡片精度显著更高 |
| 硬件光追(可选) | 质量上限 | 开启后由 DXR 承担追踪,遮挡最准,成本最高 |
几个关键事实:
- 漫反射与镜面都由 Lumen 接管。开启 Lumen 后,Reflection Capture 与 SSR 退化为回退方案。
- 能响应动态光源与动态几何,这是它与烘焙方案的本质差别。
- 不强制要求 RTX 显卡,默认走软件 SDF 追踪,硬件光追是可选项。
- 强依赖时序累积:输出经过时序降噪,因此高度依赖 TSR/TAA。关闭时序抗锯齿会看到明显噪点与闪烁。
- 不需要 UV2,这是相对 Lightmap 工作流的一大解放,美术不必再为间接光维护第二套 UV。
能力限制也要提前知道:
| 限制 | 表现 | 规避方式 |
|---|---|---|
| 薄几何 / 小物件质量差 | 栅栏、叶片、绳索的间接光与遮挡不准 | 关键物件加厚几何,或用 Nanite 提升卡片精度 |
| 半透明 GI 受限 | 玻璃后的间接光不准(5.1+ 有改善) | 关键区域补光,或改用不透明近似 |
| 移动端不支持 | 移动端无法启用 Lumen(截至 5.x) | 回退烘焙路线 |
| 时序噪点 / 拖影 | 快速运动的物体或光源有滞后感 | 提高 TSR 质量、加大追踪距离、避免剧烈光照变化 |
| 非 Nanite 网格精度低 | 传统网格的 Surface Cache 卡片较粗 | 关键资产转 Nanite,或调高卡片分辨率 |
| 大世界开销高 | 远处 GI 成本高 | 用追踪距离参数做分级 |
MegaLights 不是 GI
UE5.5+ 的 MegaLights 支持大量动态光源(成百上千个点光/聚光)与软阴影,解决的是传统延迟管线光源数量上限的问题。它只负责直接光与阴影,间接光仍由 Lumen 承担,两者是互补关系,不是替代关系。截至 5.x 仍属实验与逐步成熟阶段,接入前需要评估。
UE 的路线选择:Lightmap 还是 Lumen
这是 UE 项目最关键的 GI 决策,两者不能叠加——同一区域的间接光只会由一条主线负责。
| 判断条件 | 选 Lightmap(烘焙) | 选 Lumen(实时) |
|---|---|---|
| 目标平台 | 移动端、低端 PC、主机需极致性能 | PC / 次世代主机 |
| 光照是否动态 | 固定 | 昼夜循环、可破坏、光源可移动 |
| 美术成本 | 愿意承担 UV2 + 烘焙时间 | 不愿维护 UV2,接受时序噪点 |
| 极高质量静态静帧 | 更优(离线多次弹射) | 一般 |
| 迭代速度 | 慢(每次改光要重烘) | 快(即时可见) |
| 显存 / 性能预算 | 更省 | 更吃 |
实践中常见的折中是:主线用 Lumen,局部关键区域用 Lightmap 或补光做质量补强;或者主线用 Lightmap,动态物体走 VLM+ILC(等同 UE4 路线)。
UE4 与 UE5 的能力边界
| 能力 | UE4(≤4.27) | UE5(5.x) |
|---|---|---|
| 动态光源影响静态间接光 | 默认不支持(需重烘) | Lumen 实时 |
| 动态光源影响动态物体间接光 | 仅 RTGI 可行 | Lumen 实时 |
| 动态几何影响间接光 | 不支持 | Lumen 支持 |
| 半透明物体间接光 | 不支持 | 受限(5.1+ 改善) |
| 移动端实时 GI | 不支持 | 不支持(Lumen 不支持移动端) |
| 默认路径 | 烘焙 + IBL 近似 | Lumen 实时 |
| 硬件光追定位 | 独立可选项,需自建管线 | Lumen 的质量后端 |
| 质量稳定性 | 高(离线烘焙无噪点) | 中(时序噪点需调优) |
三、Unity 6 的方案全景
架构总览
1 | |
Enlighten 的现状
Enlighten 的实时 GI 已经在 Unity 6 中移除。它是「预计算 + 运行时快速重建」的方案,能响应光源旋转,但预计算时间长、内存占用大、移动端受限。Enlighten 的烘焙部分同样在逐步退出,官方推荐 Progressive Lightmapper 与 GPU Lightmapper。
后果是:Unity 6 的默认 GI 全链路都是烘焙的,运行时只做读取与插值。这是它与 UE5 最大的路线差异。
Lightmap 烘焙
数据源有两个:Progressive Lightmapper(CPU,可增量、可边改边烘)和 GPU Lightmapper(快,需要支持的显卡)。服务对象是 Baked / Mixed 光照模式下的静态物体,限制同样是 UV2 必须展开、光源变化需重烘、不支持动态物体承接。
需要留意的是 Mixed 模式:方向光的直接光与阴影可以走实时 Shadowmap,但间接光永远是烘焙的。
传统 Light Probes 与 LPPV(均已过时)
Light Probes 是手动放置在场景中的球谐探针组,为动态物体提供间接光。硬伤是密度固定、需手工摆放、没有视差校正,因此贴墙时漏光或发暗。Unity 6 中官方推荐用 APV 取代,但 Light Probes 仍作为 APV 体积之外区域的兜底存在。
LPPV(Light Probe Proxy Volume)是过渡方案:在局部区域放置代理体积,用虚拟探针插值已有 Light Probes 数据,提供局部更高密度的间接光。它本身不参与烘焙,只是对现有数据的二次插值,精度受制于源探针,且同样没有视差校正,已被 APV 取代。
APV:Unity 6 的 GI 主干
APV(Adaptive Probe Volumes,自适应探针体积)是 Unity 6 中动态物体间接光的标准方案,也是这套体系里工程质量最高的一环。
| 特性 | 说明 |
|---|---|
| 数据来源 | Lightmapper 直接把场景真实间接光烘到探针,不是从别的探针插值 |
| 自适应密度 | 光照变化剧烈处自动加密,平坦处放疏,比手动摆放高效得多 |
| 视差校正 | 采样点被约束回探针的有效体积内,显著改善贴墙与半封闭空间的漏光发暗 |
| Sky Occlusion | 额外烘焙一层天空可见度,改善开口区域的天空光遮挡(需单独开启,有额外烘焙成本) |
| Baking Sets | 把不同区域的探针与光照拆成独立烘焙任务,支持团队并行与局部重烘 |
| Scenario Blending | 烘焙多套光照情境(白天/夜晚/黄昏),运行时按权重混合 |
| Streaming | 大场景探针数据可分包按需加载,控制内存峰值 |
| 多 Volume | 多个 Volume 叠加覆盖不同区域,交界处混合过渡 |
| 调试视图 | Validity / Density / Diffuse 等专用视图,可直接看出哪里探针无效、哪里密度不够 |
APV 的边界要说清楚:它是烘焙方案,不是实时 GI。Scenario Blending 解决的是「在几套预设之间过渡」,不是「光源可以随便动」。真正的自由昼夜循环仍然需要 HDRP 射线追踪或外部方案。
反射探针与 SSR
Reflection Probes 是烘焙的 Cubemap(IBL),负责局部镜面反射,需要合理摆放与混合。SSR 在 HDRP 中内置,URP 通过 Renderer Feature 提供,可用性随版本变化,需按目标版本确认。SSR 只覆盖画面内可见像素,且只解决镜面反射,不是 GI。
HDRP 射线追踪 GI
这里要纠正一个常见误解:Unity 6 并非完全没有实时 GI 能力,只是它不在默认路径上。
| 项目 | 说明 |
|---|---|
| 可用性 | 仅 HDRP,需 DX12 与支持 DXR 的硬件 |
| 能力 | 射线追踪的间接漫反射、镜面反射、阴影、AO、递归渲染等 |
| 定位 | 可选增强,需自行配置加速结构、降噪与采样 |
| 成熟度 | 中等:缺少 Lumen 那种「屏幕空间 + 兜底缓存」的完整混合回退体系 |
| 移动端 | 不可用 |
| 参考渲染 | HDRP 的 Path Tracer 可生成离线参考图用于对拍,不用于实时 |
准确的表述是:Unity 6 的默认 GI 路线是烘焙,实时 GI 只在 HDRP + DXR 硬件这条窄路径上可用,成熟度与易用性明显低于 UE5 Lumen。
Unity 6 的能力边界
| 能力 | 支持情况 |
|---|---|
| 动态光源影响静态间接光 | 不支持(需重烘,或 Scenario Blending 在预设间切换) |
| 动态光源影响动态物体间接光 | 不支持 |
| 动态几何影响间接光 | 不支持 |
| 实时镜面反射 | SSR(屏幕空间,有局限)/ HDRP 射线追踪反射 |
| 实时漫反射 GI | 仅 HDRP + DXR 射线追踪 GI |
| 移动端 | 烘焙路线完整可用 |
四、三方核心对比
总表
| 维度 | UE4 | UE5 | Unity 6 |
|---|---|---|---|
| 默认 GI 主干 | 烘焙 | Lumen 实时 | 烘焙 |
| 静态漫反射间接光 | Lightmap | Lightmap 或 Lumen | Lightmap |
| 动态漫反射间接光 | VLM + ILC | Lumen | APV |
| 探针数据来源 | 烘焙(从光) | 烘焙(从光)/ Lumen 实时 | 烘焙(从光) |
| 探针密度 | 格子 + 砖块稀疏化 | 同 UE4 | 自适应 |
| 视差校正 | 无 | 不适用(实时计算) | 有 |
| 动态光源响应 | 仅 RTGI | Lumen | 无(仅 Scenario Blending 离散切换) |
| 动态几何响应 | 无 | Lumen | 无 |
| 默认镜面反射 | Reflection Capture(IBL) | Lumen Reflections | Reflection Probes(IBL) |
| 实时镜面反射 | RTGI / Planar | Lumen / SSR 回退 | SSR / HDRP 射线追踪 |
| 半透明 GI | 无 | 受限 | 无 |
| 移动端 | 烘焙可用 | Lumen 不可用 | 烘焙可用 |
| 时序噪点 | 无(烘焙) | 有(需 TSR 配合) | 无(烘焙) |
| 烘焙迭代速度 | 慢 | 快(GPU Lightmass)/ 无需烘焙(Lumen) | 中(Progressive 可增量) |
| 调试可观测性 | 弱(偏黑盒) | 中(Lumen 有可视化视图) | 强(APV 专用调试视图) |
动态物体间接光:三套实现的机理差异
- UE4(VLM + ILC):体积体素(烘焙)→ 物体采样点插值。精度受体素密度与 ILC 质量档限制,无视差校正,贴墙发暗。
- UE5(Lumen):实时追踪(屏幕空间 + Surface Cache/SDF + 可选 HWRT)。响应即时,但带时序噪点,薄几何精度差。
- Unity 6(APV):体积探针(烘焙,直接从光烘出)→ 带视差校正的采样。读取层面响应即时,但光源一动就失效,贴墙质量最好。
一句话概括:UE4 的问题是「旧光 + 没校正」,UE5 的问题是「实时但有时序代价」,Unity 6 的问题是「质量好但光不能动」。
贴墙与半封闭空间的质量
这是 TA 最常撞上的一类问题,三个引擎叫法不同,根因是同一件事:采样点落在墙外或落在无效体积里,间接光取到了错误的值。
| 引擎 | 现象 | 机制原因 | 缓解手段 |
|---|---|---|---|
| Unity 6 APV | 墙面黑块 / 探针无效 | 探针落在几何内部或体积外 | 视差校正 + Validity 调试视图,可定位可修 |
| UE4 VLM+ILC | 贴墙发暗 / 漏光 | 无视差校正,采样点越界 | 调高 ILC 质量、加补光、改探针密度;无专用视图,偏经验排查 |
| UE5 Lumen | 不是黑块,而是噪点 / 拖影 / 薄几何漏光 | SDF 精度不足、时序收敛不够 | 加厚几何、转 Nanite、提高 TSR 质量、调追踪距离 |
同一个问题在三个引擎里有三套名字和三个数量级的排查难度。Unity 6 的 APV 调试视图是目前最好用的定位工具,UE4 基本靠经验,而 UE5 的问题性质已经变了——从「数据错」变成了「收敛不够」。
调试与可观测性
| 需求 | UE4 | UE5 | Unity 6 |
|---|---|---|---|
| 查看探针有效性 | 无 | 无(Lumen 不适用) | APV Validity 视图 |
| 查看探针密度 | 无 | 无 | APV Density 视图 |
| 查看追踪与采样 | 无 | Lumen 可视化视图 | APV 调试视图 |
| 烘焙结果检查 | Show Flags / Lightmap density | 同上 + GPU Lightmass 预览 | Lightmap Preview |
| 逐像素 GI 对拍 | Path Tracer(离线参考) | Path Tracer(离线参考) | HDRP Path Tracer(离线参考) |
性能与成本档位
| 方案 | 运行时成本 | 烘焙成本 | 显存占用 | 硬件门槛 |
|---|---|---|---|---|
| Unity 6 Lightmap + APV | 低 | 中(探针 + Lightmap) | 中(探针可 Streaming) | 低,移动端可用 |
| UE4 Lightmap + VLM | 低 | 中 | 中 | 低,移动端可用 |
| UE4 SSGI | 中 | 无 | 低 | 低 |
| UE4 RTGI(DXR) | 高 | 无 | 高(加速结构) | RTX 级 |
| UE5 Lumen(软件 SDF) | 中高 | 无(但要构建距离场) | 中 | 非 RTX 可用 |
| UE5 Lumen(硬件光追) | 高 | 无 | 高 | RTX 级 |
| Unity 6 HDRP 射线追踪 GI | 高 | 无 | 高 | RTX 级 + DX12 |
一个实用判断:12 GB 级显存能不能开硬件光追,通常取决于加速结构 + Surface Cache / 反射分辨率的总和,而不是单一开关。 先用软件路径跑通质量基线,再逐项开硬件追踪,比一上来全开更容易定位瓶颈。
工作流与迭代速度
- Unity 6:APV 自动化程度高(拖 Volume、自动自适应密度),配合调试视图形成「烘焙 → 看问题 → 修」的闭环,迭代体验最好。
- UE4:VLM 偏黑盒,排查靠经验,Reflection Capture 需手动摆放,整体迭代慢。
- UE5:Lumen 改光即时可见,迭代最快;代价是要处理噪点、时序与性能调优,属于「另一种工作量」。
五、能力边界与选型
什么时候「必须」用真·实时 GI
| 需求 | 必须实时 GI 吗 | 说明 |
|---|---|---|
| 光源固定,只调场景物件 | 否 | 烘焙完全够用 |
| 昼夜时间循环,光源旋转 | 是 | 烘焙无法满足;Unity 可退而用 Scenario Blending 做离散预设 |
| 可破坏场景 / 动态遮挡改变间接光 | 是 | 需要实时追踪 |
| 角色在静态场景中移动 | 否 | APV / VLM+ILC 足够 |
| 大面积动态镜面反射 | 视情况 | SSR 或射线追踪反射即可,不一定要完整 GI |
| 移动端 | 否 | 只能用烘焙 |
实时性评分
| 方案 | 光源动态响应 | 几何动态响应 | 成本 | 成熟度 | 移动端 |
|---|---|---|---|---|---|
| Unity 6 Lightmap + APV | 无 | 无 | 低 | 高 | 可用 |
| Unity 6 Scenario Blending | 离散切换 | 无 | 低 | 高 | 可用 |
| UE4 Lightmap + VLM | 无 | 无 | 低 | 高 | 可用 |
| UE4 SSGI | 部分(屏幕内) | 部分 | 中 | 实验 | 不可用 |
| UE4 RTGI | 真实时 | 真实时 | 高 | 中 | 不可用 |
| Unity 6 HDRP 射线追踪 GI | 真实时 | 真实时 | 高 | 中低 | 不可用 |
| UE5 Lumen(软件) | 真实时 | 真实时 | 中高 | 高 | 不可用 |
| UE5 Lumen(硬件光追) | 真实时 | 真实时 | 高 | 高 | 不可用 |
决策路径
- 目标平台含移动端? 是的话只能走烘焙(Unity 6 Lightmap+APV 或 UE 的 Lightmap+VLM),到此为止。
- 光照会动态变化(昼夜、可破坏、光源移动)?
- 否 → 烘焙。优先 Unity 6 APV(质量与可调性最好)或 UE 的 Lightmap+VLM。
- 是 → 进入第 3 步。
- 能接受引擎绑定到 UE5?
- 能 → UE5 Lumen,目前唯一开箱即用的完整实时 GI。
- 不能且必须在 Unity → HDRP 射线追踪 GI(需 DXR 硬件,工程量与风险都更高)。
- 不能且必须在 UE4 → 自建 RTGI 管线,或升级到 UE5。
- 只是偶尔需要动态光照而非全程? 考虑 Unity 的 Scenario Blending 或 UE 的混合策略,用烘焙换性能。
按项目类型选
| 场景类型 | 推荐方案 | 理由 |
|---|---|---|
| 室内静态场景 + 动态角色 | Unity 6 APV / UE Lightmap+VLM | 烘焙质量高,动态物体由探针承接 |
| 贴墙 / 半封闭空间多 | Unity 6 APV 优先 | 视差校正 + 调试视图,问题可控可修 |
| 昼夜循环 / 光照频繁变化 | UE5 Lumen | 引擎级实时 GI,唯一成熟方案 |
| 昼夜循环但必须用 Unity | Scenario Blending(离散)或 HDRP 射线追踪 | 前者便宜但不连续,后者昂贵且需 DXR |
| 移动端 / 低端硬件 | 三者皆走烘焙 | 无实时 GI 的性能余量 |
| 大世界开放场景 | UE5 Lumen / Unity 6 APV + Streaming | 流式加载与距离分级是关键 |
| 需要精确排查 GI 问题 | Unity 6 APV | 可视化工具三家中最强 |
| 长线做动态 GI | UE5 | Lumen 已成熟,UE4 与 Unity 6 都需自建或受限 |
六、症状速查
| 症状 | 引擎 | 可能原因 | 处理方向 |
|---|---|---|---|
| 动态角色贴墙处发黑 | UE4 | VLM 无视差校正,采样越界 | 调高 ILC 质量、加局部补光、加密探针区域 |
| 墙面出现规则黑块 | Unity 6 | 探针无效或落在几何内 | 用 APV Validity 视图定位,调整 Volume 边界或烘焙精度 |
| 墙面有大片漏光 | Unity 6 | 探针密度不足 / 未开 Sky Occlusion | 提高密度、开启 Sky Occlusion、检查遮挡体是否为静态 |
| 移动光源后间接光不变 | UE4 / Unity 6 | 烘焙方案的固有行为 | 改为可移动标记并使用实时方案,或接受重烘流程 |
| 移动光源后间接光变了但画面闪烁 | UE5 | Lumen 时序收敛不足 | 提高 TSR 质量、加大追踪距离、减少剧烈光照跳变 |
| 薄物件(栅栏/叶片)GI 明显错 | UE5 | SDF 精度不足 | 转 Nanite、加厚几何,或对该物件改用烘焙补光 |
| 反射区出现明显接缝 | 三者 | Reflection Capture / Probe 摆放不当,混合失败 | 重摆探针、调整混合半径与优先级 |
| 半透明物体没有间接光 | UE4 / Unity 6 | 烘焙方案不支持半透明 GI | 用自发光或补光近似;UE5 可依赖 Lumen,但仍受限 |
| 大场景探针内存爆掉 | Unity 6 | 未开 Streaming 或密度过高 | 开启 APV Streaming,降低非关键区域密度 |
| 烘焙时间不可接受 | 三者 | CPU Lightmapper + 大场景 | Unity 用 GPU Lightmapper / Baking Sets;UE5 用 GPU Lightmass 或直接转 Lumen |
七、术语表
| 术语 | 全称 / 说明 |
|---|---|
| GI | Global Illumination,全局光照(间接漫反射 + 间接镜面反射) |
| IBL | Image-Based Lighting,环境贴图采样(不是 GI) |
| Lightmap | 烘焙到 UV2 的间接光贴图(通道 ①) |
| VLM | Volumetric Lightmap,UE 的体积光照探针(通道 ②) |
| ILC | Indirect Lighting Cache,UE 中动态物体读取 VLM 的缓存层 |
| LPV | Light Propagation Volumes,UE4 实验性体积光传播(已废弃) |
| DFGI | Distance Field GI,UE4 实验性距离场 GI(UE5 由 Lumen 取代) |
| DFAO | Distance Field AO,距离场环境光遮蔽(不是 GI) |
| SSGI | Screen Space Global Illumination,屏幕空间 GI(通道 ③) |
| RTGI | Ray Traced GI,硬件光追 GI(通道 ④,DXR) |
| Lumen | UE5 实时 GI 系统(屏幕空间 + Surface Cache/SDF + 可选 HWRT) |
| HWRT | Hardware Ray Tracing,Lumen 的硬件光追后端 |
| Surface Cache | Lumen 为每个网格预生成的 6 面辐射度卡片缓存 |
| MegaLights | UE5.5+ 的大量动态光源方案(不是 GI,与 Lumen 互补) |
| APV | Adaptive Probe Volumes,Unity 6 自适应探针体积(通道 ②) |
| LPPV | Light Probe Proxy Volume,Unity 过渡方案(被 APV 取代) |
| Baking Sets | Unity APV 的烘焙任务拆分机制 |
| Scenario Blending | Unity APV 的多套光照情境运行时混合(昼夜的离散解) |
| Sky Occlusion | Unity APV 的天空可见度烘焙 |
| Enlighten | Unity 旧 GI 方案,Unity 6 已移除实时部分 |
| Parallax Correction | 视差校正,把采样点约束回探针有效体积(APV 有,UE VLM 无) |
| SH | Spherical Harmonics,球谐系数,探针常用存储格式 |
| DXR | DirectX Raytracing,Windows 硬件光追 API |
总结
把三个引擎的 GI 放在一起看,真正的分歧只有一句话:间接光的来源是预先烘好的,还是每帧算出来的。
UE4 与 Unity 6 走的是同一条路线——静态靠 Lightmap,动态靠探针读取烘焙数据,差别在于探针的质量与可调试性:UE4 的 VLM+ILC 无视差校正且偏黑盒,Unity 6 的 APV 从光直接烘出、带视差校正,还配了专用调试视图。UE5 则把主干换成了 Lumen,代价是强依赖时序降噪、薄几何质量差、移动端不可用。
选型时可以按这个顺序问自己:目标平台有没有移动端、光照会不会动、能不能接受绑定到 UE5。三个问题答完,方案基本就定死了,剩下的都是在这个方案内部的调优问题,而不是方案之争。
最后一点提醒:三个引擎的小版本迭代都很快,Lumen 的限制清单、APV 的 Scenario Blending / Streaming 可用范围、HDRP 射线追踪的平台支持都可能变化,落地前以官方文档复核。性能结论尤其要在目标硬件上实测帧时间,不要直接套用任何人的经验值。