You are here: Shading and Lighting > Shader Tree Item Layers > Processing > Occlusion


Constant Color

Occlusion is a technique for calculating the shading of surfaces based on how occluded they are. Depending on the settings, any receding or recessed areas are shaded darker (or lighter). Modo also has a render output called Ambient Occlusion, that produces similar results, but does not take surface attributes into account. 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 with which you can control 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.

NOTE:  For information about adding and working with Shader Tree item layers, see the Shader Tree topic.

Constant Panel





Toggles the effect of the layer on and off to duplicate the functionality of toggling visibility in the Shader Tree. When disabled, the layer has no effect on the shading of the scene. However, Modo saves disabled layers with the scene, and they are persistent across Modo sessions.


Inverts the colors (RGB values) for the layer to produce a photonegative effect.

Blend Mode

Affects the blending between different layers of the same effect type. With this, you can stack several layers for different effects.

For more about blending, see the Layer Blend Modes topic.


Changes the transparency of the current layer. Reducing this value increasingly reveals lower layers in the Shader Tree, if present, or dims the effect of the layer, itself, on the surface.


Color/Value 1: Specifies the color of the shading in the occluded areas. This color ramps toward Color 2.

Alpha: Specifies the level of transparency for Color 1.

Color/Value 2: Specifies the color of the shading in the non-occluded areas. This color ramps toward Color 1.

Alpha: Specifies the level of transparency for Color 2.

Type: Determines the occlusion calculation method, 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 the reflection. This is determined by the camera's 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, it's 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: This 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 are, 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: 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 is fired from each shading position. The wider the Spread Angle, the more likely a recessed area is considered occluded, also a higher number of rays is 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 if the surface is concave or convex.

Cutoff Angle: This parameter is used to discard occlusion hits that are too close to the original orientation. So if the occlusion sample hits lie in the same plane as the original sample (plus or minus the cutoff angle) it ignores them. We don't recommend changing this number.

Same Surface Only: When this option is enabled, occlusion is only 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 this option is enabled, the occlusion sample values are 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: This option works with the Use Vertex Cache option to control the number of vertex values that are interpolated to produce the final result. For each vertex, all the adjoining vertex values are interpolated that are within the user-defined range. Larger filter sizes produce smoother results.

Bias: Increasing this value causes 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: This setting is similar to a contrast control that affects the falloff of the gradient ramp between the Color/Value 1 and Color/Value 2. Setting the Gain to 100% creates a very sharp contrast whereas setting the value to 0% reduces the contrast between the two to almost imperceptible amount.

Gain 0%


Gain 25%


Gain 50%


Gain 25%


Gain 100%