ambient_occlusion

Class

Shader

Output

RGB

Synopsis

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.


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.


near_clip
The minimum occlusion distance that is sampled.


far_clip
The maximum occlusion distance that is sampled.


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.


black_color

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:

white_color

The output color when the ratio of the ray hits/total rays is zero (fully unoccluded). 

It is possible to change the white attribute to a color other than white in order to achieve a specific look:

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.


The most common use for this is to simulate dirt or erosion, as corners and cracks will become darker. 

 

The example below shows a brick road with an Ambient Occlusion pass (with Invert Normals enabled) multiplied on top of the beauty render in order to add 'dirt' in-between the bricks.

opacity

Alters the opacity of the ambient occlusion effect, thereby changing the opacity of the object. Lower values increase the opacity. It is possible to drive the opacity of the ambient occlusion effect with a shading network. You must ensure that Opaque is switched off for the geometry.

 

Poly sphere with texture connected to 'opacity' attribute

 

self_only

Only gathers occlusion against the same object.

  • No labels