1 of 12

Software Ray Tracing in Lumen

Myunghoon Cha

SIGGRAPH Advances in real-time rendering

Daniel Wright

Krzysztof Narkowicz

Patrick Kelly

Lumen: Real-time Global Illumination in Unreal Engine 5

2 of 12

Why Lumen?

Indoor lighting often solved with baked lighting

Dynamic indirect lighting can solve this problem.

3 of 12

Hybrid Ray tracing

Trace against the depth buffer first (Screen Tracing)

Trace against Signed Distance fields in computer shaders

Apply lighting to ray hits with Surface Cache

4 of 12

Why Software tracing?

Option to scale down

Some GPUs don’t support Hardware Ray Tracing (HWRT)

60 fps for consoles

Full control over tracing code

Can’t replace HWRT, but can pick different tradeoffs

5 of 12

Screen Tracing

Screen tracing supplement mismatches from the surface cache

Handles mismatches between Full triangle meshes and distance field.

Hierarchical Z Buffer traversal

6 of 12

Mesh Distance Fields

Sparse representation

Mipmaps

Streamed from disk based on distance

Doubled default voxel density + 4x max resolution per mesh

Net memory cost: about half of UE4

10x faster Mesh distance field building

7 of 12

Surface Cache

Capture mesh at low resolution into atlas

Speedup on Nanite meshes: ~10~100x

Compute direct and indirect lighting

Low quality GI gather for multi-bounce

8 of 12

Hybrid Ray tracing

9 of 12

Datas and Quality

10 of 12

Datas and Quality

11 of 12

Software Ray Tracing Benefits

GI and rough reflections

Supported on all platforms

Versatile utility

Runtime LOD for complex scenes.

12 of 12

Question?