1 of 9

Lumen: Global Illumination in Unreal Engine

Zihan Liao, Jasper Liu, Junmin Chen, Jinglun Zhang

2 of 9

Overview

Goal:�In this final project, we aim to explore and implement the core and essential idea behind Lumen, the real-time global illumination in Unreal Engine. We want to build a global illumination renderer that traces the ray to collect direct light, but uses a Radiosity-based method for accumulating indirect light as Lumen does.

Key Ideas from Lumen:

  • Radiosity-based indirect lighting: Instead of tracing secondary rays exhaustively, we accumulate indirect light using a radiosity solver.�
  • Radiance cache for temporal reuse: Lighting information from previous frames is stored and reused to avoid redundant computation.�
  • Distance fields and surface cards: Distance fields are used to represent nearby geometry efficiently, enabling fast intersection tests. Surface cards approximate complex meshes with a limited number of planar patches to reduce computation in radiosity calculations.�

3 of 9

Milestone Progress

  1. Built system from HW3 based project, and added interactive mouse control for mesh (e.g. rotating and moving bunny model)
  2. Optimization techniques
    1. Mesh Distance Field: Replaced costly ray-triangle intersections with ray marching using mesh-based signed distance fields (SDFs), achieving real-time performance with high frame rates.
    2. Card Generation: Used PCA to generate oriented bounding boxes (OBBs) and cluster mesh surfaces into multiple "cards" to compactly store surface data and reduce memory overhead.
    3. Normal Surface Cache: Cached per-card surface normals to support indirect lighting computation in the radiosity pass.
    4. Radiance cache

4 of 9

Mesh Distance Field

Replaced expensive ray-triangle tests with ray marching over precomputed signed distance fields (SDFs), enabling real-time rendering with significantly higher frame rates.

SDF Grid Representation

Ray Marching Step Visualization

Render Output Using SDF

5 of 9

Card Generation

Optimize surface data storage by subdividing meshes into cards (oriented bounding boxes) by PCA and k-means. Store surface information to compact cards instead of the entire mesh bounding box’s volume to reduce memory usage.

Cached Normal within Cards

SDF within Cards

6 of 9

Surface & Radiance Cache

Surface cache stores surface properties, like normals and material information. Radiance cache stores computed indirect radiance, which can be reused and avoid unnecessary ray tracing.

Surface Cached Normal (Card-based)

Radiance Cache Update

7 of 9

Results

CBdragon

CBlucy

CBbunny

8 of 9

More Results with Mirror box

CBdragon

CBlucy

CBbunny

9 of 9

Why This Project Was Valuable

  • Rebuilt core parts of Unreal Engine’s Lumen system, gaining real insight into industry-level real-time global illumination.�
  • Applied advanced techniques like distance fields, card-based lighting, and radiance cache to achieve high-performance rendering.�
  • Great foundation for anyone interested in graphics research, engine development, or real-time rendering careers.