Lighting

GI_diffuse_samples

Controls the number of rays fired when computing the reflected indirect-radiance integrated over the hemisphere. The exact number of hemispherical rays is the square of this value. Increase this number to reduce the indirect diffuse noise. Remember that the diffuse sampling is done for each Camera (AA) sample, so high values for both Camera (AA) samples and Diffuse samples will tend to result in slow renders.

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.

Increasing the number of Diffuse samples will increase the number of diffuse rays fired from a point: 

Indirect Diffuse Ray sampling & Indirect Diffuse Noise


The table below shows the effect of increasing the number of Diffuse samples (GI_diffuse_samples) to resolve indirect diffuse noise:

Diffuse samples (GI_diffuse_samples): 1 2 4 6. Render time: 131 156 271 427

This shows the performance impact when increasing the number of Diffuse samples (GI_diffuse_samples). Because indirect diffuse rays are so prevalent, this can get expensive. In this example, the performance hit from 1 to 6 samples was over 320%.  

Indirect diffuse noise

This is one of the most common causes of noise and can have a number of different sources. It manifests as granularity in the scene, usually in shadowed areas. 

There are a couple of different methods to determine indirect diffuse noise. If you've rendered AOV's you can check the indirect diffuse AOV; if noise is present in this AOV only, you can be quite certain this ray type is responsible. You can check if an area of noise is created by indirect diffuse noise by turning diffuse samples to zero; this will effectively turn off indirect diffuse. If this ray type is responsible, then the noise will disappear. If the image darkens with the indirect diffuse gone, but the noise is still present, indirect diffuse rays are not responsible for the noise.

In the example below a directional light is pointing into an enclosed space. With diffuse samples set to 0, no light can bounce off of the surfaces, and therefore there is no indirect light in the scene. Increasing the diffuse samples to 1 allows diffuse rays to bounce around the scene. However, it produces a noisy result, especially in the corners of the scene. Increasing the diffuse samples to 3 gives an improved result. It is good practice to use this value sparingly. Increase it incrementally and see if you notice any difference in the quality of the indirect diffuse component.

Remember that the diffuse sampling is done for each Camera (AA) sample, so high values for both Camera (AA) samples and diffuse samples will tend to result in slow renders.

Diffuse Surfaces Through Reflections

In scenes where you have both directly visible diffuse (bath) and diffuse visible through reflections/refractions (chrome reflection), increasing the diffuse samples will only help to improve the directly visible diffuse noise. Whereas increasing the Camera (AA) samples will improve everything uniformly (the entire image).

Diffuse samples only affects directly visible diffuse surfaces and nothing else

GI_specular_samples

Controls 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 (soft/blurry reflections). Remember that the specular sampling is done for each Camera (AA) sample, so high values for both Camera (AA) samples and Specular samples will tend to result in slow renders.

Diagram showing how specular reflection rays are propagated in an Arnold render

 

In the example below the mirrored surface has a high specular_weight and specular_roughness values. In the image on the left, you can see that there are not enough GI_specular_samples and therefore there is noise in the mirror. Increasing the GI_specular_samples gives a better result.

If you reduce the number of GI_specular_samples to zero and the specular_ray_depth to zero and the noise disappears, then the noise is due to specular reflections.

GI_transmission_samples

Controls the number of samples used to simulate the microfacet-based transmission evaluations. Increase this value to resolve any noise in the transmission. If you switch this parameter to zero, the GI_transmission_depth to zero and the noise disappears, you will know that the noise is due to transmission.

Diagram showing how transmission rays are propagated in an Arnold render

 

Specular Ray Sampling and Transmission Noise

While it is normally a straightforward matter to determine whether it is a specular reflection or transmission causing the noise, we need to confirm that specular rays are responsible for a given type of noise: If you've rendered AOV's you can check the indirect diffuse AOV; if noise is present in this AOV only, you can be quite certain this ray type is responsible. Also, you can switch the GI_specular_samples and GI_transmission_samples and specular_ray_depth types to zero in the Arnold render settings. Again, this essentially turns off specular rays. If the specular rays are responsible, the noise will disappear with this test. If the specular component disappears but the noise is still there, specular rays are not responsible.

GI_volume_samples

Controls the number of sample rays that get fired to compute indirect lighting of the volume. Like the other sampling rate controls (Camera (AA), light samples, Diffuse samples, etc.), the number of actual samples is squared, so a setting of 3 fires 3x3=9 rays. Setting it to 0 turns off indirect lighting of the volume. Note that indirect volume lighting is tied to the 'Volume' ray depth render option, and therefore there must be at least 1 Volume bounce for indirect lighting to be computed.

GI_sss_samples

This value controls the number of lighting samples (direct and indirect) that will be taken to estimate lighting within a radius of the point being shaded to compute sub-surface scattering. Higher values produce a cleaner solution but will take longer to render.

Some additional noise in indirect specular and Diffuse GI originating from an object with SSS is expected, in particular, if diffuse samples is set lower than the SSS samples setting. To combat this type of noise you can try using higher Camera settings and lower Specular, Diffuse and SSS sampling rates or increase the Diffuse/ Specular samples. Increasing the SSS samples will only make the subsurface effect have less noise in-camera, specular reflection, and transmission rays.

In the images below you can see that there is noise in the darker areas of the eye socket. Increasing the Diffuse samples will reduce this type of noise.

auto_transparency_depth

The number of allowed transparency hits. With 0 objects will be treated as opaque. The example below consists of six glass cubes that are sitting on top of each other. Arnold returns black when there is an insufficient number of rays due to the limit imposed by the Transparency Depth. Increasing this value allows more rays to pass through the transparent surfaces. In this case, a Transparency Depth of 12 is enough to get a good result.

indirect_specular_blur

Sets indirect specular blurring to reduce caustic noise. Setting to zero gives the most accurate but also noisy renders, while higher values blur caustics to reduce noise.

sss_use_autobump

If enabled, autobump surface detail is visible in subsurface scattering.  This can impact render time negatively, and so is off by default.

luminaire_bias

Sets a distance offset for shadow rays to prevent a light becomes an occluder itself.

 

 

There are further lighting options grouped as below:

  • No labels