What you'll learn:
- Indirect lighting systems theory — the mental model for choosing between methods
- Screen Tracing — fast screen-space approximation
- Hardware Ray Tracing for GI — accurate but expensive
- Distance Field Global Illumination — software fallback
- Lumen quality and noise control
Section 41: Indirect Lighting Systems Theory (5 min)
Lumen provides multiple methods for calculating indirect lighting. Most modern UE5 projects use the defaults, but understanding the landscape helps you optimize for your specific needs.
| Method | How It Works | Best For |
|---|---|---|
| Screen Tracing | Traces against screen-space data (what's visible) | Fast, default fallback |
| Hardware Ray Tracing | Uses RTX/DXR hardware to trace actual geometry | Highest accuracy, requires RT GPU |
| Software Ray Tracing (Distance Fields) | Uses pre-computed mesh distance fields | Works without RT hardware, handles global scale |
It's useful to think in three layers:
- What data does the system use? (screen pixels, ray hits, distance fields)
- How accurate is the result? (approximation vs physically traced)
- What breaks first? (view-dependence, noise, resolution limits)
1) What data is being queried?
- Screen Tracing: the rendered image — fast but only knows what's on screen
- Hardware RT: ray queries against scene geometry — accurate but expensive
- Distance Fields: a signed distance representation of meshes — precomputed approximation
2) How accurate is the result?
- Screen Tracing: good approximation, but view-dependent — looking away breaks it
- Hardware RT: most physically accurate — rays trace actual geometry
- Distance Fields: approximate — resolution depends on mesh DF quality
3) What problems should you expect?
- Screen Tracing: artifacts when relevant geometry is off-screen or occluded
- Hardware RT: noise depending on sample count, higher GPU cost
- Distance Fields: resolution artifacts on thin geometry or complex shapes
You don't pick one — Lumen uses all of them together.
Lumen automatically blends these methods based on what's available and what works best for each situation:
- Screen Tracing handles nearby, on-screen surfaces (fast)
- Distance Fields handle off-screen and distant geometry (works everywhere)
- Hardware RT (if available) provides higher accuracy where needed
What you control:
| Setting | Effect |
|---|---|
| Hardware RT enabled | Lumen can use RT for higher quality traces |
| Hardware RT disabled | Lumen falls back to Screen Tracing + Distance Fields only |
| Screen Traces Off | Forces Distance Fields / RT only (more stable, potentially slower) |
| Quality settings | Trade accuracy vs performance within each method |
The practical takeaway: Most projects use the defaults. You adjust settings when you have specific problems — noise, view-dependent artifacts, or performance issues.
- Section 42 — Screen Tracing: the fast path, its limitations, and how to control it
- Section 43 — Hardware Ray Tracing for GI: when accuracy matters
- Section 44 — Lumen Quality & Noise Control: tuning for your use case
Section 42: Screen Tracing (8 min)
Screen Tracing uses the rendered image to approximate indirect lighting. It's fast but has inherent limitations.
In Part 8: Ambient Occlusion, we added a Post Process Volume with Infinite Extent (Unbound) enabled. We'll use that same volume to control Lumen settings.
Many Lumen controls live in Post Process settings — including Screen Traces, quality settings, and update speeds.
Screen traces ray-march through screen-space depth data:
- Start from a surface point
- Step through screen pixels looking for intersections
- Use hit pixels to estimate indirect lighting contribution
Pros:
- Very fast — uses existing render data
- No special hardware required
- Good for nearby surfaces
Cons:
- View-dependent — can only trace what's on screen
- Looking away from a bright surface removes its GI contribution
- Doesn't work for off-screen or occluded geometry
To toggle Screen Traces, select your Post Process Volume and navigate to:
Details Panel → Global Illumination → Lumen Global Illumination → Screen Traces
Check the checkbox to enable the override, then set to On or Off.
TODO: Screenshot - Post Process Volume showing Global Illumination > Lumen Global Illumination > Screen Traces path
Test 1: Toggle On/Off
With Lumen enabled in your GI demo room:
- Toggle Screen Traces Off — watch how indirect lighting changes
- Toggle Screen Traces On — the screen-space contribution returns
Test 2: View-Dependence
With Screen Traces On:
- Position your camera facing a bright colored surface (like the blue rectangle from Part 6)
- Notice the color bleeding onto nearby walls — screen traces are sampling the visible surface
- Rotate the camera so the colored surface moves off-screen
- Watch the color bounce disappear — screen traces can only sample what's currently rendered
This is why screen traces are called "view-dependent." If a surface isn't visible on screen, it can't contribute to GI through this method.
TODO: Screenshot - Color bounce visible when surface is on-screen
TODO: Screenshot - Color bounce disappears when surface is off-screen
Project Settings → Rendering → Lumen → Screen Tracing Source
| Source | Description |
|---|---|
| Scene | Standard scene color |
| Scene Color with Translucency | Includes translucent surfaces (best for accuracy) |
Section 43: Hardware Ray Tracing for GI (8 min)
For highest GI accuracy, Lumen can use hardware ray tracing to evaluate lighting at each ray hit.
Lumen has two modes for how it evaluates lighting at ray hit points:
| Mode | How It Works | Best For |
|---|---|---|
| Surface Cache | Caches lighting data on surfaces, rays read from cache | Default — good balance of quality and performance |
| Hit Lighting | Evaluates full lighting at each ray hit | Highest accuracy, complex scenarios |
Project Settings → Rendering → Lumen → Ray Lighting Mode → Hit Lighting
Note: Hit Lighting is more expensive but produces more accurate results, especially for:
- Complex multi-bounce scenarios
- Small emissive surfaces
- Highly detailed geometry
Hardware ray tracing for GI requires:
- NVIDIA RTX 2000+ or AMD RX 6000+
- DirectX 12 with Shader Model 6
- Support Hardware Ray Tracing enabled in Project Settings
Without RT hardware, Lumen falls back to Distance Fields and Screen Tracing.
Use Hardware RT when:
- You need highest quality indirect lighting
- Emissive materials should accurately light the scene
- You're doing cinematics or virtual production
Stick with Surface Cache when:
- Performance is critical
- You need to support non-RTX hardware
- Default quality is sufficient for your art style
Section 44: Lumen Quality & Noise Control (5 min)
These settings live in your Post Process Volume under Global Illumination → Lumen Global Illumination:
| Setting | What It Does | When to Increase |
|---|---|---|
| Final Gather Quality | Sample count for GI calculation | Noisy indirect lighting |
| Lumen Scene Lighting Quality | Lighting representation fidelity | Lighting looks inaccurate |
| Lumen Scene Detail | Geometry representation fidelity | Small objects not contributing to GI |
Remember: Check the checkbox next to each setting to override it. Higher values = better quality but more expensive.
Lumen uses temporal accumulation — it builds quality over multiple frames. Noise appears when:
- Camera or objects move quickly
- Lighting changes rapidly
- Sample counts are too low
Emissive lighting via Lumen can be particularly noisy:
Why Emissive Can Be Noisy:
- Mesh size and emissive intensity — Small meshes with high intensity are harder to sample accurately
- Related to Screen Traces — Screen-space limitations affect emissive contribution
- Sample count — Default sampling may not be enough for complex emissive setups
Solutions:
- Reduce intensity of emissive and increase exposure instead
- Use larger emissive surfaces rather than small bright ones
- Add support lights (actual light actors) near emissive surfaces for consistent results
- Increase Final Gather Quality (performance cost)
Don't rely on emissive as primary lighting when you need predictable, repeatable results.
These console variables control Lumen's spatial filtering and denoising:
| Console Variable | Default | What It Does |
|---|---|---|
r.Lumen.ScreenProbeGather.SpatialFilterNumPasses | 3 | Number of spatial filter passes — increase to smooth noisy samples spatially |
r.Lumen.ScreenProbeGather.SpatialFilterHalfKernelSize | 1 | Kernel size — increase to widen the filter for stronger denoising |
| Setting | Location | What It Does |
|---|---|---|
| Lumen Scene Lighting Update Speed | Post Process → Lumen GI | How fast lighting updates (lower = more stable, slower response) |
| Final Gather Lighting Update Speed | Post Process → Lumen GI | How fast final gather updates (lower = more stable) |
Trade-off: Reducing update speed makes lighting more stable but slower to respond to changes. For cinematics, slower speeds reduce noise; for gameplay, faster speeds keep lighting responsive.
- Start with default settings — Often good enough
- If noisy: Increase
SpatialFilterNumPassesto 5-6 - If still noisy: Increase
SpatialFilterHalfKernelSizeto 2 - For cinematics: Reduce update speeds in Post Process settings
- For problem emissives: Add support lights or reduce emissive intensity
Key Points:
- Lumen uses multiple tracing methods adaptively — Screen Tracing, Hardware RT, Distance Fields
- Screen Tracing is fast but view-dependent — looking away breaks GI contribution
- Hardware RT provides highest accuracy but requires RTX hardware
- Surface Cache is the default; Hit Lighting is more accurate but expensive
- Lumen has noise — use spatial filtering CVars and update speed settings to control it
- Emissive can be noisy — use support lights for consistent results
You now understand how indirect lighting is calculated. But there's one more element that contributes to the rendered image — reflections. In Part 12: Reflections, we'll explore what reflections are, how material properties control them, and set up reference materials. Then in Part 13: Reflection Systems, we'll cover the different methods (Screen Space, Lumen, Ray Traced) and when to use each.