The V-Ray Denoiser Render Element removes noise from other render elements and saves its results in a few different ways.
The V-Ray Denoiser takes an existing render and applies a denoising operation to it after the image is completely rendered out via normal means. The denoising operation detects areas where noise is present and smooths them out. Images can also be denoised using the Standalone Denoise Tool included with the installation of V-Ray for Maya.
Because the V-Ray Denoiser operates on other render elements (like RGB_Color ) rather than being part of the rendering process itself, the denoising operation does not require re-rendering of the scene.
There are two denoising engines to choose from - the Default V-Ray denoiser and the NVIDIA AI denoiser (V-Ray's implementation of NVIDIA's AI-based denoising algorithm). See the Denoising Engines section for more information.
The V-Ray Denoiser has three preset options for its settings: Default, Mild, and Strong. Parameters can also be adjusted directly by using the Custom preset.
Using the Denoiser
When rendering, the V-Ray Denoiser automatically adds a few render elements in the V-Ray frame buffer which are required by the denoising algorithm. Some of them are standard render elements like Diffuse and Reflection Filter. A few special render elements are also generated:
- The noiseLevel render element is the amount of noise for each pixel in greyscale values, as estimated by the V-Ray image sampler.
- The defocusAmount render element is non-black only when depth of field and motion blur are enabled, and contains the estimated pixel blurring in screen space.
- The VRayDenoiser render element, when generated, contains the final image that results from noise removal. Whether this render element is generated depends on the Mode selection.
The denoiser can only work with the new variance-based adaptive sampling method introduced in V-Ray 3.30
||Render Settings window|| > Render Elements tab > Denoiser
VRayDenoiser offers a choice between the Default V-Ray denoiser and the NVIDIA AI denoiser. Each offers a different denoising algorithm that comes with different benefits.
Default V-Ray denoiser - V-Ray's denoising algorithm. It can utilize the CPU or the GPU (AMD or NVIDIA GPUs) to perform the denoising. It is consistent when denoising render elements, as it applies the same denoising operator to all render channels. This means that it is recommended for denoising the render elements to be used for compositing back the beauty image. In addition, it comes with a Denoiser Tool, which is recommended for denoising animation by using frame blending.
NVIDIA AI denoiser - V-Ray's integration of NVIDIA's AI-based denoising algorithm. The NVIDIA AI denoiser requires an NVIDIA GPU to work, regardless of whether the actual rendering was performed on the CPU or GPU. This means that rendering on the CPU will still require an NVIDIA GPU for denoising with the NVIDIA AI denoiser and has some advantages and drawbacks compared to the Default V-Ray Denoiser. For example, the NVIDIA AI denoiser performs the denoising faster, but is not consistent when denoising render elements. This means that there will be differences between the original RGB image and the one reconstructed from render elements that are denoised with the NVIDIA AI denoiser. It also doesn't support cross-frame denoising and will likely produce flickering when used in animation.
The Nvidia AI denoiser only works on Nvidia GPUs starting with the Kepler GPU architecture (GTX 6xx series and newer).
The parameters for this render element appear in the Attribute Editor under Extra V-Ray Attributes.
Enabled – Enables the render elements to appear in the V-Ray Virtual Frame Buffer.
Deep output – Specifies whether to include this render element in deep images.
Filename suffix – The text added to the end of the rendered file, when saved as a separate file (e.g. myrender.denoiser.vrimg).
Mode – Specifies how the results of VRayDenoiser will be saved.
Only generate render elements – All render elements required for denoising are generated so that denoising can be done with the Standalone Denoise Tool or the V-Ray Denoiser plugin for Nuke. The information calculated within them is not applied to other render elements, and no VRayDenoiser Render Element is generated.
Hide denoiser element – The VRayDenoiser channel is not present separately in the VFB. The effectsResult channel is generated with the denoised image.
Show denoiser element – The VRayDenoiser Render Element is generated to contain a denoised version of the RGB Color Render Element using the specified settings. The original render elements, including the RGB Color Render Element, are not changed.
Engine – Allows choosing between the Default V-Ray denoiser and the NVIDIA AI denoiser.
Preset – Offers presets to automatically set Strength and Radius values. For more information, see the Denoising Presets example below.
Default – Applies mid-level denoising.
Mild – Applies a more subtle level of denoising than the Default preset.
Strong – Applies a stronger level of denoising than the Default preset.
Custom – Allows the Strength and Radius parameters to be set to custom values.
Strength – Determines the strength of the denoising operation. This value is automatically set by preset selection, but can be changed when Preset is set to Custom.
Radius – Specifies the area around each pixel to be denoised. A smaller radius affects a smaller range of pixels, while a larger radius affects a larger range, which increases the noise removal. This value is automatically set by preset selection, but can be changed when Preset is set to Custom.
Hardware acceleration – Uses the OpenCL version of the denoiser, if possible. It falls back to the CPU version if OpenCL is not available.
Generate Render Elements – When enabled, adds only the elements needed for the current denoiser. When disabled, it adds only the noiseLevel and defocusAmount render elements; the rest must be added manually.
Update – Re-apply the denoising operation when the required render elements are already present in the V-Ray frame buffer. The elements can be either generated from a render in Maya, or by loading a multi-channel .vrimg or OpenEXR into the V-Ray Frame Buffer. Use this button to apply denoising again after settings on this rollout have been changed.
Suggested Render Settings
While the denoiser can be quite effective at removing noise, it is not perfect. Very noisy images can lead to artifacts and loss of image detail. For most scenes, use the Progressive image sampler with the Noise threshold parameter set to 0.05 or lower. Additionally, the denoiser works best when the noise levels across the image are similar (when the noiseLevel channel is as close to uniform gray as possible), so using very low sampling is not recommended.
When rendering animations, disabling the Animated noise pattern option in the DMC sampler rollout generally improves the results. Using the Standalone Denoise Tool on the rendered frames can additionally improve the quality of the animation.
Example: Denoising Presets
The example below illustrates how vrayRE_Denoiser works using the presets. A purposely noisy render was set up using the Progressive image sampler with Render Time set to only 10 minutes to leave plenty of noise in the render. To better see the noise level in each image, click the image to see it at full size.
RGB Color Render Element prior to denoising
vrayRE_Denoiser Render Element (Mild Preset)
vrayRE_Denoiser Render Element (Default Preset)
vrayRE_Denoiser Render Element (Strong Preset)
vrayRE_Denoiser Render Element
(Custom Preset: Strength: 5, Radius: 10)
The vrayRE_Denoiser Render Element
(Custom Preset: Strength: 10, Radius: 20)
Example: noiseLevel Render Element
The noiseLevel Render Element shows where areas of noise have been detected in the scene. White areas have the most noise, black areas have no noise, and gray areas have varying levels of noise.
RGB Color Render Element prior to denoising
noiseLevel Render Element
(Click image to more clearly see
dark gray spots representing noisy areas)
Denoised RGB Color Render Element
Denoising Separate Render Elements
To denoise a separate Render Element, select it from Render Settings > Render Elements > Added Render Elements.
In the Attribute Editor, go to Extra Vray Attributes and enable the Denoise option.
Not all Render Elements support the Denoise function. For more information, please see their respective page.
When denoising animations, it is recommended to use the Standalone Denoiser Tool. Unlike the denoiser integrated in the UI, the standalone tool can do frame blending for animations, which reduces flickering. The integrated denoiser only works on the rendered frame and does not take the next and previous frame(s) into account, like the standalone tool does.
To denoise an image sequence with vdenoise run the following command:
where the question mark (?) replaces the digits in the sequence's file names.
For example, if the images in the sequence are named anim_0001.exr, anim_0002.exr, etc. and are located in the folder c:\renderoutput, the full command will be:
When that command is run, the sequence is read and for each frame, the specified number of adjacent frames are also considered. A new output image is then written for each frame.
- Мode set to only generate render elements.
- denoising engine set to Default V-Ray denoiser.
- Render output set to vrimg or multichannel exr.
The NVIDIA AI denoiser does not perform frame blending and will likely produce flickering when denoising animations.
Image denoising takes place after the frame has been rendered, so the results of denoising will not show up until all rendering has finished.
Textures or materials such as VRayStochasticFlakesMtl that could be considered to have a purposely noisy look are not considered "noisy" by vrayRE_Denoiser, and are not affected by the noise removal process.