How to use denoising?






Denoising is a feature built into Corona Renderer, which can be used to quickly make noisy images noise-free. It can significantly reduce render times, by removing the need to wait until the noise refines during the rendering process. 


There are two types of denoising in Corona Renderer:

  1. Corona High Quality Denoiser
  2. NVIDIA GPU AI Denoiser




1. Corona High Quality Denoiser


Corona High Quality Denoiser has been introduced in Corona Renderer 1.4. It is a post-rendering effect which analyzes noise in the 3D space and smartly reduces it without producing splotches while maintaining sharp edges and texture details. Therefore it is not a strictly a 2D post-process. The result can be interactively blended with the original non-denoised image directly in the VFB after the rendering is finished to achieve desired level of denoising. This is especially useful if the denoised image appears to be over-processed (generally this should not happen but can sometimes be observed, for example in case of textures with very subtle patterns and rendering a small number of passes).


The main purpose of denoising, along with adaptivity, is reducing the number of passes needed to get a noise-free image. The reported render time reductions are between 50 and 70%. Denoising also attempts to remove fireflies (single bright pixels) from the image.


Corona High Quality Denoiser is executed after the rendering is finished by either limiting the rendering, or by manually stopping it after desired time.
Note: Clicking "Cancel" in the 3ds Max rendering dialogue will DISCARD denoising, and it will not be applied to the final rendering! To stop rendering and apply denoising, you need to use the "Stop" button in Corona VFB, or in 3ds Max rendering dialogue.



Corona High Quality Denoiser has three modes:

  • High quality - full denoising
  • Only remove fireflies - useful in scenes where fireflies are the only issue, much faster than full denoising
  • Gather data for later - gathers denoising data for the standalone Corona Image Editor



There are two parameters to control this denoising type:

  • Denoise amount - this blends between the denoised and non-denoised image. The default value of 0,65 provides good balance between denoising and fine detail. 
  • Denoise radius - radius of the blurring filter. Increasing it may help reduce very strong noise. Decreasing can help prevent loss of fine details. Default value usually works best.




2. NVIDIA GPU AI Denoiser


NVIDIA GPU AI Denoiser has been introduced in Corona Renderer 3 and its main purpose, as the name suggests, is to provide fast, noise-free previews. This denoising type is applied almost real-time during interactive or regular rendering, and after the rendering is stopped. It requires a supported GPU to work (Kepler architecture or newer), which is detected during the installation. 


NVIDIA GPU AI Denoiser works in a similar way to the Corona High Quality Denoiser, however there are some substantial differences:

  • It is preformed purely on the GPU (Corona High Quality Denoiser - on the CPU)
  • It uses machine learning (sometimes called "AI") to smartly blur noise, but also to produce detail (Corona High Quality Denoiser can only blur the image)
  • It can be used during interactive rendering too (Corona High Quality Denoiser can only be applied after the regular rendering is finished)
  • It works almost in real-time and is applied to the image progressively as it renders (Corona High Quality Denoiser takes time and is applied only once, after the rendering is finished)
  • It should be used mostly for interactive rendering, quick previews, and optionally for final stills (Corona High Quality Denoiser is designed to be used for high quality stills and animations)
  • It should not be used for animations, since it does not offer any kind of temporal consistency - rendering different frames will most likely result in flickering and artifacts (Corona High Quality Denoiser can be used for animations, provided that the base image quality is good enough)
  • NVIDIA GPU AI Denoiser, as opposed to the Corona High Quality Denoiser, does not feature any additional modes


The only setting available for this denoising type is Denoise Amount, which works exactly the same as for the Corona High Quality Denoiser – it blends the original non-denoised image with the denoised result, and this can be done interactively during rendering, or once rendering is finished.


NVIDIA GPU AI Denoiser requires additional components to be installed during the Corona Renderer installation. This is done automatically if a supported GPU is detected. In case of installation issues, the additional components can be installed manually.

See: How to install the NVIDIA GPU AI Denoiser in offline mode?



Denoising limitations


There are two important things to bear in mind when using both denoising types:

1) Denoising can improve images which are noisy only to a certain degree. In case of extremely noisy images, denoising will not be able to help, and the result will be splotchy or full of artifacts.

2) Denoising requires additional render elements, which are invisible to the user. These render elements can take a considerable amount of memory:

Example 3dsmax.exe RAM usage for an interior scene rendered in 1920x1080 resolution with 10 denoised render elements:

  • No denoising – 6,5 GB
  • Fast Preview Denoising – 7,3 GB (+GPU VRAM)
  • High Quality Denoising – 7,3 GB




Denoising and distributed rendering


When using Corona’s distributed rendering, so that all computers are rendering a single image, both denoising types will be performed on the master machine only. This means that the denoising will not be performed on the render nodes at all, and that they do not need to have supported GPUs or drivers installed for the NVIDIA GPU AI Denoiser.

When using other types of network rendering – for example sending jobs to render nodes, so that each computer will render a different frame, both types of denoising will be performed on all machines which are rendering. This means that additional processing time will be needed for the Corona High Quality Denoiser, and that supported GPUs and drivers must be installed on all computers for the NVIDIA GPU AI Denoiser to work.




Enabling denoising


1. Corona High Quality Denoiser

It can be enabled under Render Setup > Scene > General Settings > Denoising:




2. NVIDIA GPU AI Denoiser

For the regular rendering, it can be enabled under Render Setup > Scene > General Settings > Denoising:




For interactive rendering, it can be toggled in Performance > Performance Settings > Interactive rendering:





Example uses


Saving a CXR file and denoising it later


The "Gather data for later" option can be used to skip the actual denoising process, but save the denoising data within the CXR file. Such file can be then denoised later using the Corona Image Editor



Saving multiple versions of the rendering with different denoising amounts


Multiple "CShading_Beauty" render elements can be used to save different versions of the same image at once with various amounts of denoising applied. Individual denoising amount is specified in the properties of each CShading_Beauty element regardless of the in-VFB setting:




Multiple CShading_Beauty elements visible on the render elements list. The denoising value of each of the elements is different than the "denoise amount" currently set in Corona VFB. Click to enlarge.



Denoising other render elements


Denoising can be applied to other render elements too by enabling the "Apply denoising also to this render element" option in each element's settings.




Examples


Below are some examples where denoising greatly improves image quality:



1. Denoising on and off

1.1. Denoising on - interior scene - 10 minutes.

(click to enlarge)


1.2. Denoising off - interior scene - 10 minutes.

(click to enlarge)



1.3. Denoising on - strong DOF - 10 minutes.

(click to enlarge)


1.4. Denoising off - strong DOF - 10 minutes.

(click to enlarge)



2. Denoise radius


2.1. Denoise radius: 1
Denoise amount: 1
(default settings)




2.2. Denoise radius: 0,25
Denoise amount: 1
Note that the details are sharper than with default settings, but there are some artifacts visible.



2.3. Denoise radius: 4
Denoise amount: 1
Note how details get blurred.