GI noise near moving lights (point lights, probably projectors): worst at half GI resolution, colourful under DLSS #1087

Open
opened 2026-10-25 22:07:41 +00:00 by sky_line · 1 comment
Owner

Owner, 2026-10-25 (dev fc780b19b3, RTX 5090, ray-traced GI on):

  • Noise on objects and avatars only near moving lights (scripted/animated point lights; probably projectors too). None under static lights.
  • Freezing the scene in that area (moving lights stop) removes the noise entirely; unfreezing brings it back.
  • Worst at half GI resolution (RenderVKGIScale < 1), with or without an upscaler.
  • At full GI resolution under DLSS (Ray Reconstruction): milder, colourful noise on objects.
  • Independent of the #1038 changes as far as tested.

Likely area: GI's temporal reuse does not react to light motion. When a light moves, cached / reused GI is stale but still accepted:

  • ReSTIR GI temporal reservoirs keep samples whose radiance came from the light's old position (no light-change validation; the "change sphere" logic of #985 covers geometry, does it cover lights?).
  • The radiance cache cells near the light keep old radiance (no invalidation / faster decay where a light moved).
  • The GI denoiser's history clamp / anti-lag doesn't see the change, then RR or the half-res upsample turns the mismatch into coloured noise.
  • At half resolution, fewer samples per pixel plus the upsample make each stale/fresh mismatch bigger.

Wanted: moving lights invalidate or fast-decay exactly the GI they affect (reservoirs whose path hit inside the light's moved volume, radiance-cache cells inside its old and new influence spheres, denoiser history via an anti-lag / light-change signal), leaving static areas fully temporally reused.

Owner, 2026-10-25 (dev fc780b19b3, RTX 5090, ray-traced GI on): - Noise on objects and avatars **only near moving lights** (scripted/animated point lights; probably projectors too). None under static lights. - **Freezing the scene** in that area (moving lights stop) removes the noise entirely; unfreezing brings it back. - Worst at **half GI resolution** (`RenderVKGIScale` < 1), with or without an upscaler. - At full GI resolution under DLSS (Ray Reconstruction): milder, **colourful** noise on objects. - Independent of the #1038 changes as far as tested. Likely area: GI's temporal reuse does not react to light motion. When a light moves, cached / reused GI is stale but still accepted: - ReSTIR GI temporal reservoirs keep samples whose radiance came from the light's old position (no light-change validation; the "change sphere" logic of #985 covers geometry, does it cover lights?). - The radiance cache cells near the light keep old radiance (no invalidation / faster decay where a light moved). - The GI denoiser's history clamp / anti-lag doesn't see the change, then RR or the half-res upsample turns the mismatch into coloured noise. - At half resolution, fewer samples per pixel plus the upsample make each stale/fresh mismatch bigger. Wanted: moving lights invalidate or fast-decay exactly the GI they affect (reservoirs whose path hit inside the light's moved volume, radiance-cache cells inside its old and new influence spheres, denoiser history via an anti-lag / light-change signal), leaving static areas fully temporally reused.
sky_line added this to the Slipstream project 2026-10-25 22:07:41 +00:00
Author
Owner

Owner test of dev 0979c17fa5: GI noise near the moving lights is much improved with the fix (9d30412d25). A small remainder seems to come from an animated fire (light + texture animation), which may be the same mechanism for animated emissive textures rather than moving light volumes -- to classify.

Owner test of dev 0979c17fa5: GI noise near the moving lights is much improved with the fix (9d30412d25). A small remainder seems to come from an animated fire (light + texture animation), which may be the same mechanism for animated emissive textures rather than moving light volumes -- to classify.
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#1087
No description provided.