menu_bookDocumentation

Indirect Light Volumes (DDGI) — dynamic global illumination probe grid

calendar_today May 5, 2026 schedule ~1 min read person patrickjr verified 50

Indirect Light Volumes (DDGI)

IndirectLightVolume places a probe grid for dynamic global illumination — light bouncing off surfaces tints nearby objects, and sunlight fades naturally into rooms. It is currently in Feedback Preview.

Setup

Add an IndirectLightVolume component to a GameObject and size it to cover the area you want lit:

CSHARP
var go = Scene.CreateObject();
go.Name = "GI Volume";

var ddgi = go.Components.Create<IndirectLightVolume>();
ddgi.Size         = new Vector3( 1024, 1024, 512 );
ddgi.ProbeDensity = 8f;   // units between probes — lower = more detail
ddgi.NormalBias   = 5f;   // push samples off surfaces to reduce artifacts
ddgi.Contrast     = 1f;   // higher = punchier, more stylized bounces

Properties

PropertyDescription
ProbeDensityDistance between probes. Lower = finer detail, higher VRAM cost
NormalBiasOffset samples from surfaces. Increase if you see dark speckles
ContrastCrushes darks for a more dramatic look
InsideGeometryBehaviourDeactivate (remove probes inside geometry) or Relocate (move them)

Best Practices

  • Cover key areas without overlapping volumes unnecessarily
  • Re-bake after major scene changes
  • Use low density for large open areas; add a second smaller volume for detail in tight spaces
  • Use thick wall geometry — probes can't see walls thinner than the probe spacing, causing light leaks
  • Prefer Deactivate for InsideGeometryBehaviour — Relocate can cause interpolation artifacts

Limitations

  • Thin walls leak light — thicken geometry or increase probe density near walls
  • Not real-time — baking happens in the editor; no dynamic updates at runtime
  • Re-bake whenever lights or large geometry change
Was this helpful?