Snow is missing from ray-traced reflections (lying snow mesh and snow coating not in the RT path) #970

Closed
opened 2026-10-23 09:14:53 +00:00 by sky_line · 1 comment
Owner

Part of #783 (weather). Owner report: snow does not appear in ray-traced reflections -- a snowy scene reflected in water, glass or metal shows the bare ground and surfaces.

Likely causes

  1. Lying snow geometry: the snow mesh is drawn as its own mesh (G-buffer, depth pre-pass, sun cascades) but is not in the ray-tracing acceleration structure, so reflection rays never hit it.
  2. Snow coating / wetness: applied in the G-buffer material path (weatherSurface), not in the RT reflection (and GI) hit shading, so surfaces hit by reflection rays show their unweathered material.

Wanted

  • Reflection (and GI) hits shade weather consistently with the main view: apply the snow coating (and wetness) at the hit from the weather maps at the hit's world position, using the same function as the G-buffer path.
  • Lying snow geometry visible to rays: either add the snow mesh to the TLAS as its own BLAS (rebuilt / updated when the mesh rebuilds or is patched; cost and VRAM bounded, small tier off), or a cheaper approximation (a ray-marched height-field intersection against the snow depth grid at reflection hits). Measure both and pick; document the cost.
  • Frame-structure rules (no AS / descriptor re-creation mid-recording; prestep), validation-clean, GPU cost in the existing timers.

Test

  • Snowy scene reflected in calm water / a mirror / smooth metal: the reflection shows the snow cover and lying snow.
  • Footprints and trenches appear in reflections shortly after they are made.
  • GPU timers before / after; small tier.
Part of #783 (weather). Owner report: snow does not appear in ray-traced reflections -- a snowy scene reflected in water, glass or metal shows the bare ground and surfaces. ## Likely causes 1. **Lying snow geometry**: the snow mesh is drawn as its own mesh (G-buffer, depth pre-pass, sun cascades) but is not in the ray-tracing acceleration structure, so reflection rays never hit it. 2. **Snow coating / wetness**: applied in the G-buffer material path (`weatherSurface`), not in the RT reflection (and GI) hit shading, so surfaces hit by reflection rays show their unweathered material. ## Wanted - Reflection (and GI) hits shade weather consistently with the main view: apply the snow coating (and wetness) at the hit from the weather maps at the hit's world position, using the same function as the G-buffer path. - Lying snow geometry visible to rays: either add the snow mesh to the TLAS as its own BLAS (rebuilt / updated when the mesh rebuilds or is patched; cost and VRAM bounded, small tier off), or a cheaper approximation (a ray-marched height-field intersection against the snow depth grid at reflection hits). Measure both and pick; document the cost. - Frame-structure rules (no AS / descriptor re-creation mid-recording; prestep), validation-clean, GPU cost in the existing timers. ## Test - Snowy scene reflected in calm water / a mirror / smooth metal: the reflection shows the snow cover and lying snow. - Footprints and trenches appear in reflections shortly after they are made. - GPU timers before / after; small tier.
sky_line added this to the Slipstream project 2026-10-23 09:14:53 +00:00
Author
Owner

Fixed in 1.5.0 Beta 1 (4fadccb491). Reopen if you still see it.

Fixed in 1.5.0 Beta 1 (4fadccb491). Reopen if you still see it.
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#970
No description provided.