How to use denoising in Corona Renderer for C4D?




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.  


How to use denoising?


Enabling denoising


Denoising can be enabled under Render Settings > Corona > General settings > Denoising:




Enabling denoising in render settings and available denoising modes. Click to enlarge.



Available denoising options include:

  • NVIDIA GPU AI (fast preview)
  • Intel CPU AI (speed-quality hybrid)
  • Corona high quality
  • Gather data for later
  • Denoise amount - this can be seen as opacity of the denoised image being overlaid on top of the original one
  • Denoise radius - radius of the blurring filter. Increasing it may help reduce very strong noise. Decreasing can help prevent loss of fine details. The default value usually works best.


NVIDIA GPU AI (fast preview)


This denoiser's main purpose, as the name suggests, is to provide fast, noise-free previews. It is applied almost in real-time during interactive or regular rendering, and after the rendering is stopped. It requires a supported GPU to work (See: Hardware Requirements), 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 not add detail to 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 the case of installation issues, the additional components can be installed manually.


Intel CPU AI (speed-quality hybrid)


This denoiser combines the features of the Corona High Quality Denoiser and the NVIDIA GPU AI Denoiser. It runs purely on the CPU (it does not have to be an Intel CPU though; it works fine with AMD CPUs as well) and uses machine learning to produce noise-free results. However, it is much slower than the NVIDIA GPU AI Denoiser (seconds vs milliseconds), so it can be applied only after the regular rendering ends, not in real-time during interactive rendering.


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. 


Corona High Quality Denoiser


This denoiser is a post-rendering effect that 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 the 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.


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 controlling 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. The default value usually works best.


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. Since the denoising is calculated later, you can use this approach to try different Denoise radius values without re-rendering (otherwise, the Denoise radius is baked in at render time).


For more information about CXR file saving for later use, visit this link -> How to save a .CXR file from the VFB



Saving multiple versions of the rendering with different denoising amounts


Multiple "VirtualBeauty" passes can be used to save different versions of the same image at once with various amounts of denoising applied. This allows you to use masks (either generated from Corona or created manually) to blend between different denoising amounts in post, for example, if you wish to preserve flakes in car paint or fine bump mapping in carpets that might need a lower denoising level than other parts of the image. Individual denoising amount is specified in the properties of each VirtualBeauty pass regardless of the in-VFB setting:




Multiple VirtualBeauty elements visible on the Corona Multi-Pass list. The denoising value of each of the passes is different than the currently set "denoise amount" in Corona VFB. Click to enlarge.




Denoising other passes


Denoising can be applied to other passes too by enabling the "Apply denoising also to this render element" option in each pass'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.