Global Illumination
Global illumination is the single biggest reason Vite exists as a separate fork. This page explains the options and how to choose between them; the individual techniques have their own pages.
The options
Solution | Cost | Requires DXR | Dynamic lighting | Best for |
|---|---|---|---|---|
Low | Yes | Fully dynamic | Almost everything | |
Near zero at runtime | No | Baked | Low-end and no-DXR hardware | |
Low | No | Fully dynamic | High Frequency Detail, made to run alongside DDGI | |
High | Yes | Fully dynamic | GPUs non trivially faster than PS5, Reference | |
Path-Tracing | Ultra | Yes | Fully dynamic | RTX 5080 and above, Ground Truth Reference |
Baked lightmaps | Zero at runtime | No | Static only | Fully static scenes, Always use CPU LightMass for maximum quality |
Why DDGI rather than Lumen
Dynamic Diffuse Global Illumination stores irradiance in a grid of probes and filters it using spherical harmonics. Because the representation is smooth by construction, the result is noise-free without a denoiser — which is the root cause of most of its advantages over Lumen.
Against Software Lumen, DDGI provides higher quality bounce and less light leaking. Against Hardware Lumen, it is comparable for bounce quality while typically running around twice as fast (End Scene FPS not just the isolated GI cost). In one representative test scene at 1440p native on an RTX 4080 Super, DDGI measured 811 FPS against Lumen 5.7's 324 FPS. On AMD hardware the technique holds up well: the same class of test scene runs at 245 FPS at 1080p native on an RX 6600.
DDGI is also not experimental technology. Implementations ship in Metro Exodus, Overwatch 2, The Finals, Control, The Witcher 3, Warhammer 40,000: Darktide, DOOM: The Dark Ages, Indiana Jones and the Great Circle, 007 First Light, Ghost of Yotei and Star Wars Outlaws including its Switch 2 version. AAA engines including Anvil and Snowdrop use DDGI probes as part of their ray-traced GI pipelines. The technique was designed to scale across a wide hardware range, starting from Xbox One S GPU for Static Mode and GTX 1060 class GPUs for Dynamic RT mode.

811 FPS, RTX 4080 Super, 1440p native, Dynamic DDGI. The same scene on Lumen in 5.7 measures 324 FPS.

Emissive materials contribute to DDGI directly, so a scene can be lit from emissive geometry without placing light actors for it.
Why pair DDGI with SSGI
Probe volumes have a spatial resolution. Detail smaller than the probe spacing — the darkening where a chair leg meets the floor, bounce inside a narrow gap, contact shading under a desk — is not represented, because there is no probe there to represent it.
Screen-space GI operates at pixel resolution and captures exactly that. The two techniques have shortcomings in opposite directions: SSGI has no information about anything off-screen or occluded, while DDGI has complete world knowledge at coarse resolution. Running both gives you world-scale bounce from DDGI and high-frequency contact detail from SSGI. This is an officially recommended setup by NVIDIA from their Unreal Engine DDGI presentations. Vite's SSGI is configured to work alongside DDGI from the get-go.
This is not possible in UE5. SSGI regressed in both quality and performance when it was folded into Lumen, and can no longer be enabled alongside a separate GI solution. In Vite it is the UE4-era implementation and composes cleanly.
Enabling the recommended setup
Or in configuration, which is preferable for shipping projects because it participates in scalability:
You then need to place DDGI volumes in the level. See Dynamic DDGI for volume setup, probe density and the settings that matter.
Choosing for your hardware floor
Pick a GI configuration
If your minimum spec has DXR support, use Dynamic DDGI plus SSGI. This is the default recommendation and covers GTX 1060 6 GB and above.
If your minimum spec has no DXR support at all, use Static DDGI. It bakes almost instantly, gives better bounce fidelity than traditional baked lighting, and handles moving objects better because the probe volumes cover the space rather than the surfaces.
If you need to support both, ship Static DDGI as a scalability fallback. The volumes and authoring are shared between the two modes, so this is a scalability setting rather than a second lighting pass through the level.
Only reach for per-pixel ray-traced GI if you are producing reference imagery or previsualisation. It is far more expensive than DDGI and its advantage does not survive a frame-time budget. It is also compiled out of a default build and requires rebuilding with
VITE_RT_PSO_DEBLOAT=0— see Compile-Time Switches.