Lumen

自动关联目录:Lumen

官方依据:Lumen Global Illumination and Reflections(UE 5.8 Documentation)。本页覆盖该官方页全部 17 个条目,并补官方手册不写的代价、限制成因、CVar 与排查。

1. 定位

Lumen 是 UE 的全动态全局光照与反射系统,为次世代主机设计,也是 UE5 的默认 GI 与反射方案。它渲染无限次漫反射反弹与间接镜面反射,尺度从毫米到公里。

一句话定位:Lumen 把"烘焙"从流程里拿掉了——代价是它自己算,所以要付出固定的 GPU 成本,并且启用后静态光照的贡献会被禁用。

2. 启用与前提

项说明
新项目默认已开启 Lumen GI 与 Reflections,及其依赖(Generate Mesh Distance Fields)
UE4 升级来的项目不会自动开启(官方刻意如此,避免改变已有项目的光照路径)
开启位置Project Settings → Rendering:Dynamic Global Illumination = Lumen;Reflection Method = Lumen
依赖Generate Mesh Distance Fields 会被自动打开(软件光追模式必需),需要重启引擎
取代关系Lumen GI 取代 DFAO;Lumen Reflections 取代 SSR
副作用启用 Lumen 后,预计算静态光照贡献被禁用,所有光照贴图被隐藏

"为什么我开了 Lumen 之后烘焙的光全没了" —— 不是 bug,是设计。GI 与反射可以分别独立设置。

3. 光照特性

全局光照

解决漫反射间接光:光从表面弹起、带上该表面颜色、再照亮附近表面(color bleed);网格也会遮挡间接光,产生间接阴影。

提供无限次漫反射反弹——在明亮的漫反射材质场景里(如白墙公寓)这个差异极其明显。

与 Nanite 配合时的关键设计:着色是全分辨率的,间接光在远低于此的分辨率上计算,以此换取实时性能。

天空光照

天空光在 Final Gather 过程中一并求解,包含天空遮蔽——室内可以明显暗于室外,更自然。

Lumen 也为 Lit Translucency 与体积雾提供较低质量的 GI。

自发光材质

自发光材质通过 Final Gather 传播光线,没有额外性能开销。但自发光区域越小越亮,越容易产生噪点——官方明确说这比手动放置光源"本质上更难解"。

反射

能力说明
粗糙度覆盖全范围粗糙度的间接镜面反射
内容反射里能看到漫反射 GI 与被遮蔽的天空光
Clear Coat支持(有dual normals,但有限制,见下)
半透明提供 glossy 反射
高质量半透明反射开启后,半透明最前层提供镜面反射
Single Layer Water支持,反射强制为镜面

双面植被

Two-Sided Foliage 着色模型:从背面采集光照、穿过叶片散射、用材质的 Subsurface Color 衰减。

4. 支持的光源

支持不支持
Directional、Sky、Point、Spot、Rect 全部支持Mobility = Static 的光源(Static 光完全存在 lightmap 里,启用 Lumen 后其贡献被禁用)
所有类型光源都支持 Light Functions

5. 项目设置

设置说明
Dynamic Global Illumination Method选 Lumen
Reflection Method选 Lumen
Use Hardware Ray Tracing when available显卡/RHI/系统支持时用硬件光追,否则回退软件光追。硬件光追在超过 10 万个实例的场景里"有显著的场景更新开销"
Ray Lighting Mode硬件光追下反射光线的着色方式:默认用 Surface Cache(最快);设为 Hit Lighting for Reflections 质量更高
High Quality Translucency Reflections半透明最前层用高质量镜面反射;其它层用只能出 glossy 的 Radiance Cache
Software Ray Tracing ModeDetail Tracing(对每个网格的 Distance Field 追踪,质量最高)/ Global Tracing(对低细节 Global Distance Field 追踪,最快)
Support Hardware Ray Tracing开启光追
Generate Mesh Distance Fields软件光追必需。会增加构建时间、内存占用与静态网格的磁盘大小
Distance Field Voxel Density改了会重建所有 distance field;大值会非常快地吃掉内存

6. 后处理体积设置

Global Illumination:Lumen GI

设置说明
Lumen Scene Lighting Quality提高 Lumen Scene 保真度(反射里可见),GPU 成本更高
Lumen Scene Detail能被表示进 Lumen Scene 的实例尺寸;更大 → 小物体也能表示,更贵
Lumen Scene View Distance光追场景的最大视距;更大 → 天空遮蔽与 GI 的有效范围更远,更贵
Final Gather Quality提高 GI 质量、减少噪点,更贵
Screen Traces用屏幕空间追踪(绕过 Lumen Scene,直接采样 Scene Depth/Color)。质量更好,但会导致"只在 Lumen Scene 里的改动"失效(例如只靠 GI 可见的自发光物体)
Max Trace Distance太小会导致光线泄漏到大片区域(如洞穴);太大更贵
Scene Capture Cache ResolutionLumen Surface Cache 分辨率缩放,默认 0.5,需在 Scene Capture 组件上设

Advanced

设置说明
Lumen Scene Lighting Update Speed缓存多少光照结果;变化传播更快,更贵
Final Gather Lighting Update Speed同上,针对 Final Gather
Diffuse Color Boost按 pow(DiffuseColor, 1/Boost) 提亮间接光。>1 不物理正确,是艺术导向旋钮,建议保持在 2 以下(否则反射会比场景更亮)
Skylight Leaking允许天空光泄漏的比例(非物理)——防止室内全黑
Full Skylight Leaking Distance泄漏达到全强度的距离;小 → 更平;大 → 产生 AO 效果

Reflections:Lumen Reflections

设置说明
Quality反射质量↑、噪点↓、成本↑
Ray Lighting Mode复用 Surface Cache(便宜)vs 命中点计算光照(高质量)
Screen Traces同 GI 的 Screen Traces
High Quality Translucency Reflections需先在项目设置里开启
Max Roughness To Trace超过该粗糙度就不再追踪专用反射光线;调高会大幅增加 GPU 成本
Max Reflection Bounces默认 1(镜面里没有二次反射);2+ 可消除反射中的黑块。后处理最多 8;r.Lumen.Reflections.MaxBounces 可覆盖到 64(需项目开启硬件光追 + Hit Lighting for reflections)
Max Refraction Bounces折射事件最大追踪次数;>0 时半透明网格会被追踪,反射更贵

7. 附加注意事项

光照更新速度

**局部光照变化传播很快;全局变化(如关掉太阳)可能需要数秒才传播完。**用 Lumen Scene Lighting Update Speed / Final Gather Lighting Update Speed 缓解,代价是 GPU。

关闭项目的静态光照

Project Settings → Rendering → Allow Static Lighting 关闭后:

  • 省掉一部分静态光照的 shader permutation 开销
  • 允许 Material Ambient Occlusion 与 Lumen GI 一起工作

已有光照贴图不会立刻消失:需要已加载关卡的 World Settings 里开启 Force No Precomputed Lighting,然后重建光照并保存关卡才会移除 lightmap 数据。

单独使用 Lumen Reflections

可以只用 Lumen Reflections 而不用 Lumen GI——适合用静态光照、但想要比放置式 Reflection Capture 更强反射质量的项目。

前提:必须启用 Lumen 硬件光追模式(会自动开启 reflections 的 hit lighting)。

Clear Coat 材质的限制

限制原因
只有顶层能有低粗糙度;底层被假定为粗糙 → glossy每像素只投射一条反射光线,无法让两层都出锐利反射
即使 clear coat 量为 0,限制仍然生效同上——单层时低粗糙度仍显示 glossy

Material Ambient Occlusion

Lumen GI 支持 Material AO(给骨骼网格提供可靠的自遮蔽)。启用方式:

  1. 项目设置关闭 Allow Static Lighting(腾出 GBuffer 空间)
  2. 材质输出到 Ambient Occlusion

注意:Material AO 在 Buffer Visualization 的 Ambient Occlusion 视图模式下看不到。

Bent Normal Maps 也支持,但比 Material AO 贵得多、视觉提升很小:需在 DefaultEngine.ini 的 [SystemSettings] 设 r.GBufferDiffuseSampleOcclusion=1 并重启编辑器,材质输出到 Bent Normal 自定义输出节点。

8. 参数与控制台变量

CVar / 设置作用
r.Lumen.Reflections.MaxBounces覆盖后处理的反射反弹上限,可到 64(需 HWRT + Hit Lighting)
r.GBufferDiffuseSampleOcclusion设为 1 启用 Bent Normal 采样(需重启)
r.Lumen.*Lumen 各阶段的调试、质量与开关
r.DistanceFieldAO.* / r.DistanceFields.*距离场相关(软件光追的基础)

9. 代价与权衡

权衡说明什么时候不该用
与静态光照互斥启用后烘焙贡献被禁用、lightmap 被隐藏已经重度依赖烘焙且不想重做的项目要评估迁移成本
固定 GPU 开销不管场景多简单都有一份成本低端平台/移动端应改用烘焙或更简方案
全局光照变化有延迟关掉太阳能要几秒才生效需要瞬时昼夜切换的场景要做特殊处理
硬件光追的实例数代价超过 10 万实例时场景更新开销显著实例爆炸的超大场景应优先软件光追
软件光追依赖距离场增加构建时间、内存、磁盘磁盘/内存紧张的项目要测
自发光小而亮会出噪点靠自发光做主光源很难干净关键照明仍应放真实光源
Screen Traces 的取舍质量好但屏蔽"只在 Lumen Scene 的改动"依赖纯自发光物体提供 GI 时不要开

10. 踩坑与排查

坑现象怎么验证
升级项目后 Lumen 没生效光照没变化检查项目设置两项是否手动设成 Lumen
开了 Lumen 烘焙光没了全变暗/光照贴图消失设计如此;要保留就别开 GI,只开 Reflections
自发光物体周围有噪点闪烁的脏点自发光区域太小太亮;放大面积或降低强度,或提高 Final Gather Quality
洞穴/大空间漏光本该暗的地方发亮Max Trace Distance 太小,调大
关掉太阳后要几秒才变暗更新延迟调 Lumen Scene Lighting Update Speed
反射里一片黑镜面里没有二次反射提高 Max Reflection Bounces(需 HWRT + Hit Lighting)
Clear Coat 底层不锐利底层始终 glossy官方已知限制,每像素只有一条反射光线
距离场内存暴涨打包体积/内存异常Distance Field Voxel Density 调太大
距离场反复重建每次改设置都重新构建该值一改就全量重建,最后再定
开启后 shader 编译变慢编译时间变长关闭 Allow Static Lighting 可省 permutation
移动端跑不动帧率崩Lumen 面向次世代主机与高端桌面,移动端需替代方案

11. 排查顺序

1. 确认项目设置两个开关(GI / Reflections)都是 Lumen
2. 用的是软件还是硬件光追?(Use Hardware Ray Tracing when available)
   ├─ 硬件:实例 > 10 万时注意场景更新开销
   └─ 软件:Generate Mesh Distance Fields 是否开启(需重启)
3. 光照不对 → Final Gather Quality / Max Trace Distance
4. 反射不对 → Quality / Max Roughness To Trace / Max Reflection Bounces
5. 噪声 → 提高 Quality,检查小而亮的自发光
6. 性能 → profilegpu 看 Lumen 各 Pass;先降 Screen Traces 与 Max Roughness To Trace

参考