Removing Noise

Noise and Sampling

If you have a scene that consists of a simple color and you want to know the average color of the photo, it is easy to see what the color is at any one point by using a low number of samples and then averaging the result.

 

However, if you have a more complex scene (with a character for example), and use only a few samples, sometimes half of them will be yellow and half of them blue. Sometimes all the samples will be one color or the other. Sometimes, by coincidence, all of the samples will be on the yellow character, despite only a part of the scene being the yellow character. A way to improve the average is by increasing the number of Camera (AA) samples.

Increasing the number of Camera (AA) samples resolves the noise and improves the quality of the image.

 

Further information about sampling can be found here and here.


Types Of Noise

The first step in removing noise from your renders is to identify where it is coming from. Noise can be caused by:

Insufficient Sampling:

  • Motion Blur
  • Depth Of Field
  • Diffuse
  • Glossy
  • Shadow
  • Indirect Specular
  • Refraction
  • SSS
  • Atmospheric Scattering

Other:

  • Fireflies
  • Non-energy conserving shaders, networks or settings.

Noise nearly always comes from insufficient sampling, but increasing sampling for the wrong rays can make the render times increase without helping to remove the noise. As an artist is usually working to a render time limit or amount of rays the aim is to allocate those rays as effectively as possible to minimize the noise in the most efficient manner. So if the Camera samples have to be increased to remove DOF noise, the other settings must be lowered to keep render times manageable. However, if DOF or motion blur is not a concern, then increasing Camera samples would fix all noise elsewhere but would also slow render times from the unnecessary rays.

For a procedure on removing noise, follow the workflow diagram.

 

  • Camera Samples: 1
  • Diffuse Samples: 1
  • Glossy Samples: 1
  • Refraction Samples: 1
  • SSS Samples: 1
  • Light Samples: 1
  • Atmospheric Volume Scattering Samples: 1

Here is a very noisy scene with all the samples are set to 1. The most efficient method for identifying noise is to render AOVs as modifying settings to turn on/off features takes extra time.

AOVs


In the examples below, the smoother option is shown with samples of 10. This is a very high value and is only used here because the Camera (AA) samples and all other samples are at 1 for illustrative effect to contrast the noisy and smooth areas. Normally the Camera (AA) samples would be around 4-8 and as it acts as a multiplier, similar values would be needed for the other samples.

Motion Blur And Depth Of Field Noise

 

Motion blur noise shows up in the trails of moving geometry whilst DOF noise appears in the out of focus areas. Both can be confirmed by looking at the alpha channel to see if noise is present.

 

Motion blur and depth of field noise are caused by insufficient camera rays and therefore can only be solved by increasing the Camera samples. The actual number of Camera samples is the square of this number. Camera samples of 4 results in 16 rays being cast. Note that increasing Camera samples will also increase the other samples meaning that they should be decreased to compensate. 

Increasing the Camera samples will have a dramatic effect on render times. If motion blur or DOF is not a problem then Camera samples should be the last consideration for fixing the other noise types.

Diffuse Noise

Indirect diffuse noise is probably the type of noise that will be dealt with most often. The easiest way to confirm this is the cause is to check the indirect diffuse AOV. Another method is to set Diffuse Samples to 0 which will turn off indirect diffuse. If the noise disappears then it is created by indirect diffuse.

When Diffuse samples are more than zero, camera rays intersecting with diffuse surfaces fire indirect diffuse rays. The rays are fired in random directions within a hemispherical spread. Noise is introduced when there are insufficient rays to resolve the range of values from the environment. The noise can be removed by increasing Diffuse samples.

Glossy Specular Noise

Indirect specular noise occurs when the Specular Roughness parameter > 0. It is noticeable on the bottom right of the sphere (not the top left). The easiest way to confirm this is the cause is to check the indirect specular AOV. Another method is to set Glossy samples to 0 which will remove blurred reflections. If the noise disappears then it is created by indirect specular.

Indirect specular noise is caused by a lack of Glossy samples. These samples control the number of rays fired when computing the reflected indirect-radiance integrated over the hemisphere weighted by a specular BRDF. The exact number of rays is the square of this value. Increase this number to reduce the indirect specular noise. Remember that the sampling is done for each Camera sample, so high values for both Camera samples and Glossy Samples will tend to result in slow renders.

Glossy Refraction Noise

Refraction noise is noticeable in the blurred refraction on a transparent object with refraction roughness > 0. The easiest way to confirm this is the cause is to check the refraction AOV. Another method is to set Refraction samples to 0 which will remove blurred refractions. If the noise disappears then it is created by glossy refractions.

Refraction noise is caused by a lack of Refraction Samples. Refraction Samples controls the number of samples used to simulate the microfacet-based glossy refraction evaluations. The exact number of rays is the square of this value. Increase this number to reduce the noise in blurry refractions.

SSS Noise

SSS noise will occur on surfaces that are using the standard shader with SSS enabled or the Skin SSS shader. To confirm check the SSS AOV.

The SSS noise can be removed by increasing SSS samples.

Direct Specular And Shadow Noise

Likewise, shadow noise is often mixed up with indirect diffuse noise, particularly for lights with large radii because their shadows will be softer. Look at the direct diffuse AOV to see if the shadows are noisy. Alternatively set Diffuse samples and Specular samples to 0 which will remove GI which will allow you to single out the direct lighting contribution. It can be tricky to identify direct specular noise as it could be mistaken for indirect specular noise. Direct specular is the reflection of the light itself on the surface, that should show what to look for to distinguish it from the reflections of surrounding objects based on color and intensity.

Noise in the direct specular and shadow is caused by a lack of light samples. Normally a small number of samples will be required to remove direct specular noise but more samples may be required to remove shadow noise. The larger the radius a light source has, the softer the shadows will be, and therefore more samples will be required to remove shadow noise.

 

Noise can also appear on the specular highlights of thin geometry that use a shader with a high Specular Weight value. Increasing the number of Camera (AA) samples can help reduce this effect to a point. However, even with high Camera (AA) samples, anti-aliasing artifacts can appear. Increasing the Specular Roughness value generally helps to reduce this type of noise. Increasing the size of the light and reducing its intensity can also help in these situations.

Atmospheric Scattering Noise

Atmospheric scattering noise will occur within the shadowed regions of a beam of light.

This noise is caused by a lack of samples on the Atmospheric/Volume Scattering node. The samples are distributed according to the volume density. More samples will refine the quality of the solution. 

Fireflies And Sparks

Fireflies are generated from the reflection of a strong light on a shiny glossy surface. Usually 100s of samples participate in a final pixel color. If one of those is a high valued glossy ray (coming from the reflection of a strong light) then there will be many samples with low values and a single sample with a value in the thousands. That single sample will make the whole pixel become white (a firefly). 

Clamping can help eliminate this kind of noiseIf you clamp sample values a stray single sample will now be diluted and not affect the final color as much. However, this will affect the final dynamic range of the render. Use with caution.

Volume Scattering Noise

Using area lights with volume scattering can generate bright 'spike' type noise. The problem is in areas of the volume that are very close to the light source's area (a disk in this case), where the inverse-square falloff increases the weight of the samples all the way towards infinity (at distance = 0). It's those near-infinite samples that create "fireflies" in the volume.

 

A workaround is to add a light decay filter with a very low near start value to avoid samples very close to the light. New sampling algorithms are in the works so that future versions of Arnold will not suffer from this problem and this decay filter workaround will not be needed. You can avoid this problem by using a point_light or spot_light with radius 0. That makes the sampling a lot easier as there is no area to sample.

Noise near to rectangular quad lights was fixed in Arnold 4.0.14 with a new sampler (although not for disk lights nor cylinder lights). It is no longer needed to use the light decay filter hack if you are using quad area lights in a volume.

Other Considerations

  • Noise could come from things not visible in the render (behind the camera).
  • Noise could be caused / exacerbated by non-energy conserving shaders, networks or settings.
  • Another method to reduce noise is to remove the cause and fake it with special lights. For example a character whose face is lit by bounce light only: it will be much less noisy to add a specific bounce light.
  • Arnold can remove noise easily when it knows where lights are, by sampling the lights directly, but will have problems if there are bright "directional" patches not tagged as lights that contribute significantly to the scene's lighting.

Clean Renders

No DOF

  • Camera (AA) Samples: 7
  • Indirect Diffuse Samples: 3
  • Indirect Specular Samples: 5
  • Refraction Samples: 3
  • SSS Samples: 3
  • Light Samples: 2
  • Atmospheric Volume Scattering Samples: 2

With DOF

  • Camera (AA) Samples: 16
  • Indirect Diffuse Samples: 1
  • Indirect Specular Samples: 2
  • Refraction Samples: 1
  • SSS Samples: 1
  • Light Samples: 1
  • Atmospheric Volume Scattering Samples: 1

 

When trying to identify noise in your renders, it is useful to render and view AOVs. This enables you to isolate the type of noise and adjust the relevant samples. A general guide to identifying and prioritizing the order in which common noise types can be found in the table below. Note that this is a general guide and that every scene is different.

Noise Visible in:Samples to Adjust

Alpha channel

Camera (AA) samples

Indirect Diffuse

Diffuse samples
Direct Specular (specular noise)Light samples
Direct Diffuse (shadow noise)Light samples
Indirect SpecularSpecular samples
TransmissionTransmission samples
SSS (direct and indirect)SSS (direct and indirect) samples
VolumeVolume samples (note that there are also volume samples in lights too)

  • No labels