Ambient Occlusion - Arnold User Guide

Scene rendered with ambient occlusion
Ambient occlusion is an approximation of global illumination that emulates the complex interactions between the diffuse inter-reflections of objects. While not physically accurate (for that use full global illumination), this shader is fast and produces a realistic effect.
The ambient occlusion shader essentially fires a number of rays in the upper hemisphere defined by the tangent plane of the shading point and returns the ratio of the hits divided by the total rays as a color. When the ratio of the ray hits/total rays = 0, the output is considered fully unoccluded or 'Bright' (with white color by default). When the ratio of the ray hits/total rays = 1, the output is considered fully occluded or 'Dark' (with black color by default). In between, there is a linear interpolation of the two values.
Samples
Controls the number of rays that will be fired to compute the ray hits/total ratio. Increasing the number of samples will reduce noise and give a better quality result.
![]() |
![]() |
1 | 3 (default) |
Spread
Angular spread around the normal vector N, in the range [0,1], where 1 maps to 90 degrees (the full hemisphere). 1.0 is the most common value. Other values may produce results that are not useful.
![]() |
![]() |
![]() |
0.25 | 0.5 | 1 (default) |
White
When the ratio of the ray hits/total rays is zero usually the output is considered fully unoccluded or Bright.
The output color when the ratio of the ray hits/total rays is zero (fully unoccluded). When the ratio of the ray hits/total rays is zero usually the output is considered fully unoccluded or Bright.
![]() |
![]() |
![]() |
0.5 | 0.25 | 1 |
It is possible to change the white attribute to a color other than white to achieve a specific look:

Black
The output color when the ratio of the ray hits/total rays is one (fully occluded). It is possible to change the black attribute to colors other than black for specific looks. This can be useful for tinting the color of a floor shadow for example:
![]() |
![]() |
Black color | Black color tinted with a color |
FallOff
An exponential falloff rate for the occlusion along the ray distance. It is not compatible with semi-opaque surfaces hit by the occlusion rays.
![]() |
![]() |
![]() |
1 | 2 | 10 |
Near Clip
The minimum occlusion distance that is sampled.
![]() |
![]() |
![]() |
0 (default) | 1 | 2 |
Far Clip
The maximum occlusion distance that is sampled.
![]() |
![]() |
![]() |
1 | 2.5 | 5 |
Invert Normals
This attribute changes the direction of the rays being traced. When it is off the rays are traced outside of the surface. When it is on the rays are traced inside the surface.
![]() |
![]() |
Disabled (default) | Enabled |
The most common use for this is to simulate dirt or erosion, as corners and cracks will become darker.
![]() |
![]() |
invert_normals enabled (far_clip: 0.3) | noise -> black |
The example below shows a brick road with an Ambient Occlusion pass (with Invert Normals enabled) multiplied on top of the beauty render to add 'dirt' in-between the bricks.
![]() |
![]() |
![]() |
Invert Normals enabled on AO | Beauty render | AO multiplied with Beauty |
Self Only
Only gathers occlusion against the same object.
Trace sets and self-occlusion cannot be used together.
![]() |
![]() |
Disabled (default) | Enabled |
Trace Set
A string label that defines the set of shapes used to calculate ambient occlusion. Shapes are added to a trace with their trace sets attribute.
Inclusive
If on, shapes in the trace are used for ambient occlusion. If off, shapes not in the trace set are used.
![]() |
On the right-hand side, an inclusive trace set is used to apply ambient occlusion to the tulips only. |
Normal
Specifies the direction of the hemisphere where ambient occlusion probes are traced. This setting allows for the use of a custom normal, potentially biasing the direction of the ambient occlusion. The default behavior is to use the face forward shading normal.
![]() |
![]() |
![]() |
Without Normal | U Ramp -> Normal | V Ramp -> Normal |