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 Mode | Detail 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 Resolution | Lumen 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(给骨骼网格提供可靠的自遮蔽)。启用方式:
- 项目设置关闭 Allow Static Lighting(腾出 GBuffer 空间)
- 材质输出到 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