RT shadow denoiser everywhere: projectors (à-trous/SVGF) + inline-traced shadows; no TAA/FSR dependency #666

Closed
opened 2026-10-11 05:15:22 +00:00 by sky_line · 2 comments
Owner

Owner direction: the RT shadow-mask denoiser (#85) is great and should be used everywhere. It removes the need for TAA/FSR to clean up shadow noise; both have their own problems and will be revisited.

Today

Ray-traced projector shadows go through the mask (RenderVKRTShadowMask) and get part of the denoiser:

  • per-light temporal accumulation (by light id)
  • variance clamp and fast reset on moving casters / disocclusion
  • a disc penumbra blur

They do not get:

  • the à-trous / SVGF spatial filter (RenderVKRTShadowAtrous: "Projector shadows keep the disc blur")
  • the SVGF change detection (RenderVKRTShadowSvgf, sun/moon only)
  • possibly the full anti-lag/reactive path (verify)

Inline-traced RT shadows (transparent surfaces, particles, the forward ray-query lit pass when the mask is off) get no denoising at all.

Goal

One denoiser path for every RT shadow signal: sun/moon, every RT projector slot, and anything else that traces shadows. That means temporal (adaptive history, clamp, anti-lag, SVGF change detection, reactive), à-trous spatial with variance, and the depth-aware upsample. Reuse the shared helpers clean_denoise_common.glsl / clean_rt_moving_caster.glsl from #657.

  • Projectors: per-slot variance plus à-trous iterations. Cost scales with the active RT projector count (capped); measure it and add sub-marks.
  • Alpha / particles traced inline: find a way into the denoised path, or document why not and the best alternative. Options: an alpha shadow-mask layer, or reuse of the opaque mask where depth matches.
  • Shadow output must stay unchanged where already converged. Keep A/B settings, no new per-frame allocations, VRAM within the existing accounting.
  • Without TAA/FSR (FXAA/SMAA/none), RT shadows must be as clean as with them. The denoiser must not depend on TAA's jitter/resolve; check the R2 noise phase and the reactive path.
Owner direction: the RT shadow-mask denoiser (#85) is great and should be used **everywhere**. It removes the need for TAA/FSR to clean up shadow noise; both have their own problems and will be revisited. ## Today Ray-traced projector shadows go through the mask (`RenderVKRTShadowMask`) and get part of the denoiser: - per-light temporal accumulation (by light id) - variance clamp and fast reset on moving casters / disocclusion - a disc penumbra blur They do **not** get: - the **à-trous / SVGF spatial filter** (`RenderVKRTShadowAtrous`: *"Projector shadows keep the disc blur"*) - the **SVGF change detection** (`RenderVKRTShadowSvgf`, sun/moon only) - possibly the full anti-lag/reactive path (verify) **Inline-traced** RT shadows (transparent surfaces, particles, the forward ray-query lit pass when the mask is off) get no denoising at all. ## Goal One denoiser path for every RT shadow signal: sun/moon, every RT projector slot, and anything else that traces shadows. That means temporal (adaptive history, clamp, anti-lag, SVGF change detection, reactive), à-trous spatial with variance, and the depth-aware upsample. Reuse the shared helpers `clean_denoise_common.glsl` / `clean_rt_moving_caster.glsl` from #657. - **Projectors:** per-slot variance plus à-trous iterations. Cost scales with the active RT projector count (capped); measure it and add sub-marks. - **Alpha / particles traced inline:** find a way into the denoised path, or document why not and the best alternative. Options: an alpha shadow-mask layer, or reuse of the opaque mask where depth matches. - Shadow output must stay unchanged where already converged. Keep A/B settings, no new per-frame allocations, VRAM within the existing accounting. - **Without TAA/FSR** (FXAA/SMAA/none), RT shadows must be as clean as with them. The denoiser must not depend on TAA's jitter/resolve; check the R2 noise phase and the reactive path.
sky_line added this to the Slipstream project 2026-10-11 05:15:23 +00:00
Author
Owner

Agent dispatched (Opus).

Agent dispatched (Opus).
Author
Owner

Shipped in 1.3.0 Beta 3: projector shadows get the full RT shadow denoiser, the mask accumulates without TAA, and particles average their sun visibility.

Shipped in **1.3.0 Beta 3**: projector shadows get the full RT shadow denoiser, the mask accumulates without TAA, and particles average their sun visibility.
sky_line 2026-10-11 08:53:33 +00:00
Sign in to join this conversation.
No milestone
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#666
No description provided.