Denoiser



Denoiser comparison (click to enlarge)


Maxwell includes an integrated denoiser solution to help to remove the noise (or render grain) so you can get final images quicker.

The denoiser calculation is a biased process applied over unbiased Maxwell renders. The higher the sampling level of the render, the more accurate the denoiser solution will be and the less bias it will introduce.

Using it is very easy. You only have to activate it and the denoised image will be calculated during the render or at the end. You will see it as any other channel along with the main, not-denoised render.

User Interface

You can launch a render with Denoiser either from Maxwell Studio, Maxwell Render or any plugin. You will find very similar options on all the platforms and products.

In Studio you can find Denoiser options under Render Options > Scene tab > Denoiser section.

In Maxwell, it is in Render Options panel > Denoiser, right below the Scene section.

In plugins, its location may change from one to the other but it should be close to the main render options.

Denoiser options section

Regardless of where you use the denoiser, you will find the same options:

Enabled

Activates or deactivates denoiser calculation for the next render.

Apply Denoiser

In this drop-down menu you can choose to calculate the denoised image at each SL step starting with the one set in the spinbox (8 by default) or only at the end of the render.

Use GPU

If on, the denoised image will be calculated using the GPU (much faster usually), if not it will use CPU. Check its section below for more information.

Tiling

This feature makes Maxwell calculate the denoised image by tiles or pieces instead of trying to calculate it all in one go; this reduces memory requirements a lot. The Size spinner lets you choose the maximum tile size that will be used. Check its section below for more details.

Auto Configure

This option sets all the required channels and options automatically so the denoiser can work; it comes in two flavours: Fast and Accurate (explained in its section below).

Denoise Shadow

This option allows to additionally denoise the shadow channel (it’s only available with "Auto configure" set to "Accurate", as it requires the Shadow channel to be active).

FINE-TUNING OPTIONS

Color Influence 1

Controls how much high-frequency detail of the render pass will be retained; this affects how the edges are handled. Low values mean more feature preservation <> High values mean more smoothing.

Color Influence 2

Controls how much mid-frequency detail of the render pass will be retained; this affects how color information is handled. Low values mean more feature preservation <> High values mean more smoothing.

Feature Influence

Controls the influence of the extra passes (Normals, Position, Reflectance and Shadows). Low values mean more feature preservation <> High values mean more smoothing.

Final Pass

Controls the influence of the final pass that affects color differences. Low values mean more feature preservation <> High values mean more smoothing.

Filter Radius

Defines the area around the pixel taken into account when calculating its color. It can change the overall look of the smoothing and how the noise is handled. Again, low values mean more feature preservation, but also constrains the information available for the calculation <> High values mean more smoothing.

Firefly Remover

This will detect and reduce the spread of high energy pixels (very bright pixels that usually come from SSS materials or caustics).


Workflow

In order to use the Denoiser, you only have to activate it before launching the render. Maxwell, by default, will activate some extra channels that help the Denoiser distinguish the objects' shapes and textures so it preserves as many details and features of the image as possible.

After launching the render, you will notice the Denoiser channel is active, as well as the Normals, Position and Reflectance channels (the Reflectance channel won’t show if you are using the GPU engine to render the image).

Hover the mouse over the D icon to see the Denoiser channel in the Render area.

 

The MXI file will include the Denoiser channel as it happens with other channels, so you can open it, make changes to Multilight and refresh the Denoiser channel with the new lighting setup as many times as you want. You can also, resume the render or merge the MXI files from different computers.

You can use the Refresh R and D toggles to choose if you want to refresh the render, the denoiser or both channels:

Refresh toggles set to refresh only the Denoiser channel

 

Now Maxwell does not need to launch two render for the Denoiser to work, so the whole process is less complicated, less prone to problems and more reliable.

 

Apply Denoise - Each SL or At end.

When the Denoiser is active, you can choose to get updates of the denoised image during the render (Each SL), which is more interactive, or only at the end of the render (At end), which is faster.

 

Each SL

  • In this mode, Maxwell will calculate the denoised image at each SL update.

  • You can specify the first SL that will get a denoised image update in the Start with SL spinner (by default it’s set to 8).

  • This method is more interactive as allows the user to check how the denoised image looks like during the render, however, it wastes computing time while generating the intermediate denoised images.



Render routine scheme at "Each SL" mode.

 

A sequence of a render at different SLs compared with its denoised version at the same SL when denoising at each SL.



At end

  • In this mode, Maxwell will only calculate the denoised image at the end of the render.

  • It’s the most efficient method in terms of rendering speed, but it’s less interactive.

  • The Denoiser channel will remain black until the end of the render.

 

Render routine scheme at "At end" mode.



Use GPU

Regardless of the render engine you use, the Denoiser is capable of calculating the denoised image using GPU or the CPU. Unlike with the render engine, you can use NvidiaAMD and Intel graphics cards; it works with CUDA (Nvidia) and this is the fastest, but it can also work using OpenCL either in GPU (Nvidia, AMD or Intel) or CPU.

The default option is GPU as it is usually much faster; the Denoiser will first try to use CUDA, if it doesn't find a compatible card, it will automatically fallback to OpenCL GPU (usually with AMD and Intel cards) and then OpenCL with CPU.

It’s important to be aware that when using the GPU, the graphics card memory will be used and, if the CPU is used, the RAM of the computer will be used to compute the denoised image.

These would be the minimum system requirements for Denoiser:

  • When using Nvidia CUDA, the drivers should support at least CUDA 7.0

  • When using AMD, the Catalyst driver should be up to date.

In the case you get an error message when using CPU about OpenCL ICDs, it means Maxwell cannot find valid OpenCL drivers installed on your machine; usually, those drivers are included with your graphics card drivers, so I would try updating the drivers to the latest. If that doesn't help, it will probably be solved by installing this Intel's OpenCL runtime package:

Windows: opencl_runtime_18.1_x64_setup.msi

Linux: opencl_runtime_18.1.0.013.tgz

This could also solve the error "OpenCL exception" shown when using the latest AMD processors.



Tiling

This super-useful feature makes Maxwell calculate the denoised image by tiles or pieces, instead of trying to calculate the whole image in one go. This greatly reduces the memory requirements when calculating the denoised image.

The Size spinner next to it sets the maximum size of the tiles, so you can control the memory that will be used in the process. This allows you to denoise the render on virtually any device. Please, notice that smaller tiles mean some more calculation time. This can be changed after the render has finished.

 

Auto configure

The Denoiser can make good use of extra channels in order to preserve the features and details of the image, but it has some special requirements for the channels. Auto configure option sets everything up for you.

Both options, Fast and Accurate, calculate de denoised image with the same quality but activate different options under the hood that may affect render time and the final result in different ways.

Let's see the differences between Fast (default) and Accurate:



When you activate Auto configure, you won't see these channels actually active in the channel list, but they will be activated internally at render time, stored in the mxi, you will be able to see them in the render area and will be saved along with the render, the denoised image and any other channel that was active.

The main difference between Fast and Accurate is that Fast doesn’t use the shadow channel making it much faster than the Accurate method, but as it relies on fewer channels, the denoiser has less information about the scene and it could blur, for example, objects behind glasses (the shadow channel can give information about the geometry behind the glasses).

On the other hand, the Accurate method marks the Shadow option in all materials except for emitters, so they show in the shadow channel and activates this channel. The render will be slower but will count on shadow channel information which can make the denoiser process preserve more details of the image.

The Fast method is set by default as it doesn’t impact the render speed as much as the accurate method and it works nicely in most situations. Only if the render includes objects inside refractive ones (like a jar of marbles, for example) or if you need to obtain the shadow channel for compositing purposes anyway, using the Accurate method is advisable.

 

If you don't want to use any of the two Auto configure options and set everything up manually, you have to take into account that the Denoiser needs the following to work correctly:

  • all channels in EXR 32 format;

  • if you use the Normals channel it should be in Camera mode;

  • If you use the Position channel it should be in World mode;

  • if you want to use the Shadow channel, it is recommended to turn on the Shadow option in all materials (in Global Properties) except for emitters.

 

Fine-tunning options

Now Maxwell exposes some parameters that allow fine-tuning the Denoiser result.

Fine-tunning parameters

Except for the Firefly Remover, all these parameters work as a trade-off between preserving detail and smoothing the image. In general, low values mean more feature preservation (the drawback is that some noise or artifacts may be visible) while high values mean more aggressive smoothing, however, some details may be lost.

The Denoiser initially computes the render pass (affected by Color Influence 1 and 2 parameters), then adds the different extra channels to the calculation (affected by the Feature Influence parameter) and then runs an additional final pass (affected by the Final Pass parameter). All this process is globally affected by the Filter Radius parameter.

The Color Influence 1 parameter (from 0 to 1; default: 0.45) controls how much high-frequency detail of the render pass will be retained or smoothed; this means the edges of high contrasted areas will be affected by it. The effect of this parameter is quite subtle.

The Color Influence 2 parameter (from 0 to 1; default: 0.45) controls how much mid-frequency detail of the render pass will be retained; this affects how the color information is handled.

The Feature Influence parameter (from 0 to 1; default: 0.25) controls the influence of the extra passes (Normals, Position, Reflectance and Shadows). If you are losing detail on the textures, this is a good parameter to lower down, so the information in the channels takes more relevance (as the textures usually show up in the reflectance channel).

The Final Pass parameter (from 0 to 1; default: 0.45) controls the influence of the extra final pass and affects color differences.

The Filter Radius parameter (from 2 to 50; default: 10) defines the area around the pixel taken into account when calculating its color. It can change the overall look of the smoothing and how the noise is handled. Again, low values mean more feature preservation, but also constrains the information available for the calculation and may produce some artifacts when it goes too low <> High values mean more smoothing so it can wash away too much detail. If you want to get the same denoising effect on a hi-resolution image as the one you obtained on a low-resolution one, you might want to increase this value, so the whole effect “scales” up.

The Firefly Remover will detect and reduce the spread of high-energy pixels (very bright pixels that usually come from SSS materials or caustics). It has a minor impact on calculation time.

Particularities

  • Auto configure will always be set to "Fast" when using GPU render engine.

  • When using Extra Sampling feature, only "At end" method will be available.