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 Refinement node is used to control refinement parameters throughout the scene – not to actually perform the refinement process itself.

Refinement simply averages the result of all the rays cast for a given pixel. As such any movement of objects, camera or any other properties on which ray results depend would cause refinement to be incorrect: it would be averaging results of different things, causing visual errors such as streaks and trails. Refinement is, therefore, reset by any property changes, camera or object movement, animation or change in play time.

Refinement also has the option to exploit spatial coherence via filters to smooth out the noisy image. Spatial filtering may make the render appear blurrier. The “Spatial Filter Iterations” parameters set the amount of spatial filtering. There are multiple sets of parameters for spatial filtering, separated into direct and indirect, diffuse and specular. Diffuse lighting is 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 Real-Time Denoiser or RT Refinement present and active in the scene, the default behaviour is Refining with default settings.

RT Refinement Off. RT Refinement 50 refinement steps. RT Refinement 1000 refinement steps.

RT Refinement also has Intel (CPU) and NVIDIA (GPU) AI denoising options. These AI denoisers can dramatically reduce the number of refinement steps needed to achieve a highly refined image. Finding the right balance between render time and denoising is a process that requires experience and we recommend you experiment with different options for different use cases.

As an example, using the NVIDIA OptiX denoiser for real-time denoising can be great for previz, but a higher refine count is needed for a high-quality final render. Another example is using the Intel denoiser for video renders: it is slower and uses extra memory, but can produce good results for certain heavy path tracing scenes where a lower refine count is desirable to reduce overall render time.

Overall, both options are there to provide a higher degree of flexibility so your use of Notch can adapt to different situations.

50 refinement step with Intel Open Image Denoiser. 50 refinement step with NVidia Optix.


Name Description
Max Refine Steps Sets the global maximum refinement steps for the scene.
Full Screen Antialiasing Antialiases the full screen
Filtering Enables additional filtering parameters.
Diffuse Spatial Filter Iterations Sets the number of Diffuse Spatial Filter Iteration bounces.
Specular Spatial Filter Iterations Sets the number of Specular Spatial Filter Iteration bounces.
Bounce Diffuse Spatial Filter Iterations Sets the number of Diffuse Spatial Filter Iteration bounces.
Bounce Specular Spatial Filter Iterations Sets the number of Specular Spatial Filter Iteration bounces.
AI Denoising Enable use of an AI Denoiser.
AI Denoiser Type Select the type of denoiser you want to use.
  • Intel Open Image Denoiser (CPU), Uses the open-source Intel Denoiser. Higher quality, but slower and only runs after the last refining step.
  • NVIDIA Optix Denoiser (GPU, NVIDIA Only), Uses the NVIDIA Hardware-accelerated denoiser. Faster, but at the cost of quality and limitation to NVIDIA hardware.
AI Denoiser On Last Refine Only If checked, the AI denoiser is only executed on the final refine step. If unchecked, the denoiser is run on each refine step but using the current total accumulation of refines, for preview purposes. This option is available for the NVIDIA Optix Denoiser only, as the Intel Open Image Denoiser is too slow to make per-frame previews viable.


There are no inputs for this node.


All nodes connected to this node are treated as if flowing to the parent node, and inherits any transformation changes along the chain.