modo bubbble logo


Home >> Shade, Light & Render >> Shader Tree Items >>  Occlusion

back next

Constant Color

Occlusion is a technique for calculating the shading of surfaces based on how occluded it is, depending on the settings, any receding or recessed areas would be shaded darker (or lighter). MODO also has a 'Render Output' called 'Ambient Occlusion', that produces similar results, but does not take into account surface attributes. Occlusion is a simple and fast way to simulate Global Illumination without the overhead of calculating any scene lighting, as it only takes into account surfaces and how they adjoin to each other. Occlusion makes its calculations by firing a number of somewhat random rays and calculating shading for a pixel based on how many rays intersect with neighboring surfaces. There are a number of settings for users to control just how the occlusion layer shades the surface, producing a wide variety of effects. It's also useful to change the layer 'Effect' where the contributions of other layers can be controlled by the occlusion layer (masking of a noise layer just in the crevices anyone?).
For information regarding adding and working with Shader Tree Items Layers, please reference the Shader Tree page of the documentation.

Constant PanelLayer--

Enable: Toggles the effect of the layer on and off, duplicating the functionality of toggling visibility in the Shader Tree. When un-checked (disabled), the layer has no effect on the shading of the scene. However, disabled layers are saved with the scene and are persistent across MODO sessions.

Invert: Inverts the RGB values for the layer producing a negative effect.

Blend Mode: Affects blending between different layers of the same effect type, allowing user the ability to stack several layers for different effects. For more on blending, please reference the 'Blend Modes' page of the documentation.

Opacity: Changes the transparency of the current layer. Reducing this values will increasingly reveal lower layers in the shader tree if present, or dim the effect of the layer itself on the surface.


Color/Value 1: Determines the color of the shading in the occluded areas. This color will ramp toward 'Color 2'.

Alpha: Value determines the level of transparency for 'Color 1'.

Color/Value 2: Determines the color of the shading in the non-occluded areas. This color will ramp toward 'Color 1'.

Alpha: value determines the level of transparency for 'Color 2'.

Type: Determines the occlusion calculation method, in essence controlling the way rays are fired from the surface at each pixel location. Each type produces different results.
Uniform- Fires rays in all directions in the hemisphere.
Up- Looks for occlusions above the shading point.
Down Slope- Looks for occlusions above the shading point and in the surface plane.
Reflection- Looks for occlusions in the direction of reflection. This is determined by the cameras position (when rendering) where a ray is fired and when it hits a surface, it bounces off at the angle of incidence and if it hits another surface after bouncing, its considered occluded. Useful for faking soft reflection among other uses.
Concavity- Occludes where the surface is concave, as determined by the 'Max Cavity Angle' value.
Convexity- Occludes where the surface is convex, as determined by the 'Max Cavity Angle' value.
Concavity & Convexity- Occludes in both the convex and concave areas of a surface, as determined by the 'Max Cavity Angle' value.

Down Slope

Concavity & Convexity

Occlusion Rays: The 'Occlusion Rays' setting specifies the number of semi-random rays MODO shoots out from a surface when shading a pixel for Ambient Occlusion. Generally, the higher the number of rays, the more accurate (and smoother) the Occlusion calculations will be, low numbers introduce noise as variations in neighboring pixels become more evident.

Occlusion Rays 32
Occlusion Rays 64
Occlusion Rays 128
Occlusion Rays 256
Occlusion Rays 512

Occlusion Distance: The 'Occlusion Distance' settings specifies the length of the rays that are fired from a surface. If you have a complex object with overlapping elements, limiting the ray range is a good way to control to what degree surfaces are shaded, it also helps to push the shading further into or away from recessed areas.

Distance 5mm
Distance 10mm
Distance 20mm
Distance 40mm
Distance 80mm

Variance: Adds a perlin noise function modulating the 'Occlusion Distance', meant to vary the strength of the Occlusion effect. Value determines the amplitude of the function where greater values produce stronger, more obvious results (try values above 100% ).

Variance 0%
Variance 25%
Variance 50%
Variance 75%
Variance 100%

Variance Scale: This value determines the scale (size) of the noise function applied to the variance operation.

Scale 5mm
Scale 10mm
Scale 15mm
Scale 20mm
Scale 25mm

Spread Angle: Determines the maximum amount of spread for each shading position in the direction determined by the 'Type' setting. At each shading position, a number of rays (determined by the 'Occlusion Rays' option) are fired in a semi-random pattern, starting in the normal direction from the shading surface and angling out the amount determined here (half each side away from the normal), so at 180°'Spread Angle' a full hemisphere of rays would be fired from each shading position. The wider the 'Spread Angle, the more likely a recessed area will be considered occluded, also a higher number of rays will be necessary to produce a smooth result.

Max Cavity Angle: Used with only the Concavity/Convexity options, this value determines the angle of difference between adjoining surfaces that determines is surface is 'Concave' or 'Convex'.

Same Surface Only: When this option is enabled, Occlusion will only be calculated for the surface that the shader is applied to, ignoring all other surrounding polygons. When disabled (the default), surrounding polygons are taken into account in shading calculations.

Use Vertex Cache: When the 'Use Vertex Cache' option is enabled, the occlusion sample values will be stored in the geometry's vertex, producing a faster but somewhat softer result; as values are interpolation between the vertices. The 'Cache Filter Size' option can be adjusted to control the softness of the result.

Cache Filter Size: The 'Cache Filter Size' option works with the 'Use Vertex Cache' option to control the number of vertex values that will be interpolated to produce the final result. For each vertex, all the adjoining vertex values will be interpolated that are within the user defined range. Larger Filter Sizes will produce smoother results.

Bias: Increasing this value will cause the texture to favor the primary color or value over the secondary whereas decreasing the value causes the secondary color or value to be favored.

Bias 0%
Bias 25%
Bias 50%
Bias 75%
Bias 100%

Gain:The Gain setting is similar to a contrast control that effects the falloff of the gradient ramp between the Color/Value 1 and Color/Value 2. Setting the Gain to 100% will create a very sharp contrast whereas setting the value to 0% would reduce the contrast between the two to almost imperceptible amount.

Gain 0%
Gain 25%
Gain 50%
Gain 25%
Gain 100%



back next