Method

Ray tracing is computationally intensive and some effects – such as soft area light shadows – rely on lots and lots of rays being cast per pixel. In order to make this viable in real-time or while editing interactively, Notch typically casts very few rays per pixel but uses denoising or refining to aggregate the results over time. The RT Denoiser node is used to control denoising parameters throughout the scene – not to actually perform the denoising process itself.

Denoising exploits spatial and temporal coherence via filters to smooth out the noisy image. Spatial filtering involves moving and blurring the images static sections, while temporal denoising averages frames over time. Spatial filtering may make the render appear blurrier; temporal filtering may make it appear to ghost between frames as things move. The “Spatial Filter Iterations” parameters set the amount of spatial filtering. The “Temporal Filter” parameters control the amount of temporal filtering, and the “Movement Sensitivity” parameters make denoising use less previous frame data if things are moving. Max Refinement parameters control the number of frames in the history that will be used to smooth the current frame.

There are multiple sets of parameters, separated into direct and indirect, diffuse and specular. Diffuse lighting is usually less sensitive to movement of the camera as diffuse lighting is view independent – so it may be possible to reduce motion sensitivity. Diffuse lighting is also often softer so it may be possible to increase spatial filtering. Indirect diffuse lighting is often less visible but noisier, so may be able to be filtered more heavily.

With no RT Denoiser present and active in the scene, the default behavior is Refining.

Without Denoising With Denoising

Direct Denoising

Name Description
Direct Denoising Enabled Enable denoising for direct light
Diffuse Spatial Filter Iterations How many iterations of the spacial filter function are run on the diffuse light.
Diffuse Temporal Filter How much the temporal filter applies to the direct diffuse lighting.
Diffuse Max Refinement Iterations Maximum number of temporal filter iterations that can be used for the diffuse light.
Diffuse Movement Sensitivity How sensitive the direct diffuse denoising is to movement in the scene.
Specular Spatial Filter Iterations How many iterations of the spacial filter function are run on the specular light.
Specular Temporal Filter How much the temporal filter applies to the direct specular lighting.
Specular Max Refinement Iterations Maximum number of temporal filter iterations that can be used for the diffuse light.
Specular Movement Sensitivity How sensitive the direct specular denoiser is to movement in the scene.

Bounce Denoising

Name Description
Bounce Denoising Enable Enable denoising for indirect bounce light
Bounce Diffuse Spatial Filter Iterations How many iterations of the spacial filter function are run on the bounce diffuse light.
Bounce Diffuse Temporal Filter How much the temporal filter applies to the bounce diffuse lighting.
Bounce Diffuse Max Refinement Iterations Maximum number of temporal filter iterations that can be used for the bounce diffuse light.
Bounce Diffuse Movement Sensitivity How sensitive the bounce diffuse denoising is to movement in the scene.
Bounce Specular Spatial Filter Iterations How many iterations of the spacial filter function are run on the bounce specular light.
Bounce Specular Temporal Filter How much the temporal filter applies to the bounce specular lighting.
Bounce Specular Max Refinement Iterations Maximum number of temporal filter iterations that can be used for the bounce specular light.
Bounce Specular Movement Sensitivity How sensitive the bounce specular denoiser is to movement in the scene.

Inputs

There are no inputs for this node.

Outputs