The Arnold Denoiser is a stand-alone program post process denoiser executable. It works on EXR files with multiple layers (merged) and outputs an EXR file with the denoised layers. It takes into account multiple frames and multiple light AOVs. Like most denoisers, it considers a neighborhood around the current pixel and looks for similar neighborhoods inside a given search area to blend together. To use the Arnold Denoiser, you will need to render images via the Arnold EXR driver.
The Arnold Denoiser requires that the parameter "Output Variance AOVs" is enabled in the render settings (in AOVs -> Denoise).
The workflow is as follows:
- Go to the AOVs tab and under Denoiser> Arnold Denoiser select Output Denoising AOVs. This will automatically generate the normal, depth and albedo AOVs required for the Arnold Denoiser.
- Enable Merge AOVs in the Common tab of the Arnold Render Settings and ensure that you are rendering out to EXR.
- Either Batch Render the scene or use the Render Sequence window to render out the EXR file (saving from the Arnold RenderView window will not work). You should see a file(s) in the images folder of the project.
- Go to Arnold> Utilities> Arnold Denoiser (noice) to open the denoising window.
- Choose the rendered EXR image(s) in the Input. It should then automatically add an Output path with a '_denoised' suffix.
- Choose whether you want to denoise a single frame or a sequence and then select 'Denoise'. This will start the denoising process based on the settings that you have chosen.
You can check the script editor window for any "noice" log messages.
The path to the image or image sequence to be denoised.
Set the denoised output file path. The output file will include the denoised layers with the same names as the original layers. For each file, a new one is saved, postfixed by '_denoised' (the denoised images).
Note that the file output size differs from the input files because only the main RGBA layers are saved (without the auxiliary AOVs).
Choose to render the complete Sequence, a single frame or a frame range (e.g. 1 to 10).
Complete sequence: Denoise all frames of the given image sequence.
- Single frame: Denoise only a single frame of the image sequence, specified in Start Frame.
- Start/End Frame range: Denoise the given frame range, specified in Start Frame and End Frame.
Set the sequence start value.
Set the sequence end value.
Temporal Stability Frames
The number of extra images to be used for temporal stability. Multiple additional frames can be specified to increase temporal stability (for instance
render001.exr, render002.exr, render003.exr).
noiceis in removing noise can be controlled by setting a variance threshold with the command line argument
-v). The default value is 0.5, higher values will make the denoising more aggressive by considering similar neighborhoods that have bigger color disparities.
Pixel Search Radius
noicewill search a square area with a radius set with the command line argument
-sr). The bigger this area the bigger the denoising stability and the higher the chance that similar neighborhoods to be considered will be found. The default value is 9, which gives a 19x19 square neighborhood. Setting it to 21 (a search window of 42 x 42) will look over a pixel area equivalent to loading 5 frames.
Pixel Patch Radius
This increases the softness of the denoising (while always preserving the features). The default is 3 (on the big side), but a low value would be maybe 0 or 1, middle 3 and high 5.
For every pixel
noice will consider its neighborhood patch and look for other pixels with similar neighborhood patches. The radius of this neighborhood can be controlled with the
-pr) command line argument. The default value is set to 3, which gives a 7x7 square neighborhood.
Light Group AOVs
Additional light AOVs to be co-denoised can be specified.
Define the number of threads to be used. The default is to leave one thread free, so it should not 'freeze' your computer while denoising.
The final step when setting up Denoising. In the log area, you will notice that noice.exe is called for all the files in the selected range.