[Epic] RT denoiser (shadows, AO, GI) #85

Open
opened 2026-09-27 05:44:58 +00:00 by sky_line · 2 comments
Owner

Goal: one reusable denoiser for 1-spp ray-traced signals: shadows (per light or aggregated), AO, diffuse GI (and later reflections).

Approach

SVGF / ReBLUR-style: temporal accumulation (reprojection via motion vectors, history length, disocclusion reset from depth+normal) -> variance estimate -> edge-aware à-trous spatial filter guided by the thin G-buffer. Separate signal inputs so AO/shadow/GI can share passes but keep distinct parameters.

Children

  1. Temporal accumulation pass (shared).
  2. Spatial à-trous filter (normal/depth/luminance weights).
  3. Hook RT projector shadows: move shadow evaluation to a per-pixel visibility buffer for the top-N lights (or stochastic light selection) so it can be denoised; lit pass reads the filtered visibility.
  4. Debug views (raw vs denoised, history length).

Size: M-L. Depends on: Temporal epic items 1, 2, 4, 6.

**Goal:** one reusable denoiser for 1-spp ray-traced signals: shadows (per light or aggregated), AO, diffuse GI (and later reflections). ### Approach SVGF / ReBLUR-style: temporal accumulation (reprojection via motion vectors, history length, disocclusion reset from depth+normal) -> variance estimate -> edge-aware à-trous spatial filter guided by the thin G-buffer. Separate signal inputs so AO/shadow/GI can share passes but keep distinct parameters. ### Children 1. Temporal accumulation pass (shared). 2. Spatial à-trous filter (normal/depth/luminance weights). 3. Hook RT projector shadows: move shadow evaluation to a per-pixel visibility buffer for the top-N lights (or stochastic light selection) so it can be denoised; lit pass reads the filtered visibility. 4. Debug views (raw vs denoised, history length). **Size:** M-L. **Depends on:** Temporal epic items 1, 2, 4, 6.
sky_line added this to the Slipstream project 2026-10-06 15:04:15 +00:00
Author
Owner

Child 2 (spatial a-trous filter) + child 4 (debug views) done for the RT shadow mask: c83c0ac0d6 (RenderVKRTShadowAtrous, RenderVKRTShadowDebug 1-5; off by default). Lands in 1.2.0 Beta 8. Remaining: temporal accumulation, per-light visibility for projectors, AO / GI inputs.

Child 2 (spatial a-trous filter) + child 4 (debug views) done for the RT shadow mask: c83c0ac0d6 (RenderVKRTShadowAtrous, RenderVKRTShadowDebug 1-5; off by default). Lands in 1.2.0 Beta 8. Remaining: temporal accumulation, per-light visibility for projectors, AO / GI inputs.
Author
Owner

Sun-shadow part is done and owner-verified: SVGF-style temporal history + variance-driven a-trous for the RT shadow mask (c83c0ac0d6, 7074b8109f, 9592885200), wing-flap artefact #608 fixed. Shipped in 1.2.0. Remaining and not started: per-light visibility for projectors, and AO / GI inputs (#86). Nothing is being worked on right now, so this moves from In Progress to To Do.

Sun-shadow part is done and owner-verified: SVGF-style temporal history + variance-driven a-trous for the RT shadow mask (c83c0ac0d6, 7074b8109f, 9592885200), wing-flap artefact #608 fixed. Shipped in 1.2.0. Remaining and not started: per-light visibility for projectors, and AO / GI inputs (#86). Nothing is being worked on right now, so this moves from In Progress to To Do.
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
sky_line/Slipstream#85
No description provided.