Ray Tracing in Unity has a mediocre Denoiser

I can’t a post a video to visualize my point better, but RTGI (Ray Traced GI) in Unity 6 suffers from a poor denoiser that can’t keep up in motion, in this screenshot I am moving the emissive disc left and right and you can see the denoiser simply giving up and produces a large trail of light and a lot of noise and un-denoised rays on the buildings and grass:


So my question is, is Unity aware of this and are you planning to make a better denoiser? if you are not aware you should look into Nvidia’s new ML denoiser in DLSS 3.5, sadly DLSS is another broken feature in Unity that I will open a separate discussion for, so to keep this one compact, we need a better denoiser for Ray Traced GI in HDRP.

hey, for perf reasons, the denoser of the RTGI is spread across multiple frames. If you have lots of noise, that probably means that history is discarded more often that it should.

To determine if the history should be discarded, RTGI needs proper motion vectors (to see if something moved too much), first of all make sure that you have them enabled in your HDRP asset, and secondly motion vectors in the scene view are not really reliable anyway so you shouldn’t judge the quality of this denoiser outside play mode in the game view.

Also, it’s hard to judge without any screenshots of the setting but you can tweak the parameters for the denoiser in the SSGI override; In your scene, the lower the light intensity, the harder it’s going to be for the denoiser to denoise, especially if you boosted the clamp value for more intense result.

Lastly, there’s an option in the SSGI override called “Receiver motion rejection” that should be checked by default, this basically force the receiver of the RTGI to discard history if it moves too much, this is great to avoid ghosting but it can introduce noise, un-checking that can help smoothing the denoising result as well if you want to give it a try.

1 Like