NVIDIAGameWorks / RayTracingDenoiser

NVIDIA Ray Tracing Denoiser
Other
511 stars 46 forks source link

Checkerboard code in PrePass #76

Closed ZhuChasel closed 2 months ago

ZhuChasel commented 3 months ago

I'm confused about NRD checkerboard code from PrePass(RELAX_PrePass.hlsl). Is it checkerboard rendering? But as i known, checkerboard rendering use temporal N frame and N-1 frame to reconstruct full-size. I can not get it. Please give some advice. Thansk.

dzhdanNV commented 3 months ago

Checkerboard pattern can be resolved spatially (blurry) or temporally (laggy). NRD uses both:

Spatial resolve - takes place in Pre-Pass only (if enabled). Pre-pass processes noisy input. Including "dummy" (invalid samples) samples into the final weighted sum is undesired, because it can hurt sharpness as the minimum (non-noisy guides say that the sample is good, but the sample radiance is from a neighbor, i.e. shared). Thus Pre-Pass has been made checkerboard-aware. It never touches "invalid" samples.

Temporal resolve - takes place in Temporal Accumulation pass. In short - to compensate for the lack of samples we accumulate for a bit longer if some checks are passed.

dzhdanNV commented 2 months ago

I believe I answered the question.