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
Why Lumen?
Indoor lighting often solved with baked lighting
Dynamic indirect lighting can solve this problem.
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
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
Screen Tracing
Screen tracing supplement mismatches from the surface cache
Handles mismatches between Full triangle meshes and distance field.
Hierarchical Z Buffer traversal
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
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
Hybrid Ray tracing
Datas and Quality
Datas and Quality
Software Ray Tracing Benefits
GI and rough reflections
Supported on all platforms
Versatile utility
Runtime LOD for complex scenes.
Question?