[Epic] Ray-traced global illumination #87

Open
opened 2026-09-27 05:44:58 +00:00 by backspace119 · 1 comment
Owner

Goal: dynamic diffuse global illumination (bounce light) on RT-capable GPUs.

Approach options (pick after a spike)

  1. Probe-based (DDGI-style) - recommended first. Camera-following cascaded irradiance-probe grid; each frame a budgeted subset of probes traces N rays against the TLAS, shades hits with sun/sky/local lights (+ previous-frame probe irradiance for multi-bounce), stores irradiance + distance moments (Chebyshev visibility). Lit pass samples probes for indirect diffuse. Stable, low noise, no heavy per-pixel denoising, scales well to large SL scenes, amortizable.
  2. Screen-space ReSTIR GI. Higher fidelity, much heavier denoising dependence; revisit after TAA + denoiser mature.

Interplay

  • SL already has reflection probes (our VK probe path handles specular); GI replaces/augments the diffuse ambient term. Needs a clear blend with probe ambient and SL's environment ambient to avoid double counting.
  • Hit shading needs a material/texture lookup at hit points (albedo from the RT material table - the alpha-test code already samples textures).

Children

  1. Spike: probe grid prototype (static cascade, sun only) + debug visualisation.
  2. Probe update pass (budgeted rays, hit shading incl. local lights, multi-bounce).
  3. Lit-pass sampling + blend with probe ambient.
  4. Cascades + camera scrolling + teleport invalidation.
  5. Settings/quality tiers + GPU timers.

Size: L. Depends on: RT foundation (done), benefits from temporal epic. Risk: light leaking through thin SL walls (mitigate with Chebyshev visibility + probe relocation), cost in dense sims.

**Goal:** dynamic diffuse global illumination (bounce light) on RT-capable GPUs. ### Approach options (pick after a spike) 1. **Probe-based (DDGI-style) - recommended first.** Camera-following cascaded irradiance-probe grid; each frame a budgeted subset of probes traces N rays against the TLAS, shades hits with sun/sky/local lights (+ previous-frame probe irradiance for multi-bounce), stores irradiance + distance moments (Chebyshev visibility). Lit pass samples probes for indirect diffuse. Stable, low noise, no heavy per-pixel denoising, scales well to large SL scenes, amortizable. 2. **Screen-space ReSTIR GI.** Higher fidelity, much heavier denoising dependence; revisit after TAA + denoiser mature. ### Interplay - SL already has reflection probes (our VK probe path handles specular); GI replaces/augments the *diffuse* ambient term. Needs a clear blend with probe ambient and SL's environment ambient to avoid double counting. - Hit shading needs a material/texture lookup at hit points (albedo from the RT material table - the alpha-test code already samples textures). ### Children 1. Spike: probe grid prototype (static cascade, sun only) + debug visualisation. 2. Probe update pass (budgeted rays, hit shading incl. local lights, multi-bounce). 3. Lit-pass sampling + blend with probe ambient. 4. Cascades + camera scrolling + teleport invalidation. 5. Settings/quality tiers + GPU timers. **Size:** L. **Depends on:** RT foundation (done), benefits from temporal epic. **Risk:** light leaking through thin SL walls (mitigate with Chebyshev visibility + probe relocation), cost in dense sims.
Author
Owner

Scope note: GI hit shading must include emissive radiance (PBR emissive + legacy fullbright/glow mapping) so emissive surfaces contribute soft bounce light. Sharp emissive area lighting is tracked separately in #91.

Scope note: GI hit shading must include emissive radiance (PBR emissive + legacy fullbright/glow mapping) so emissive surfaces contribute soft bounce light. Sharp emissive area lighting is tracked separately in #91.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
backspace119/Slipstream#87
No description provided.