In the real world, many materials are translucent to some extent, and do not immediately reflect light at their surface. Instead, light penetrates the surface, and is scattered inside the material, before it is either absorbed or transmitted. This effect — called subsurface scattering — can also be used to enhance the realism of a wide variety of rendered materials, even when used sparingly.

The Fast Simple Subsurface Scattering shader simulates the appearance of subsurface scattering, but not in a physically correct way. As such, it allows you to tune the scattering effect by eye, rather than requiring real-world scattering and absorbtion coefficients (not to mention photon lighting) like the Physically Accurate Subsurface Scattering shader.
![]()
|
Note that fast subsurface scattering effects are not included in the maps generated by the RenderMap tool. |
How Fast Subsurface Scattering Works
The Fast Simple Subsurface Scattering shader works by creating a lightmap that stores the shaded object’s front and back surfaces, their depths, and light intensity. During rendering, the lightmap is sampled to create several light layers, which incorporate color and depth information. These layers are then added together to produce the final subsurface scattering effect that is applied to the object’s surface.
You can find parameters to control the lightmap on the Advanced Settings tab of the Fast Subsurface Scattering shader’s property editor—see Fast Simple Subsurface Scattering Shader.
![]()
|
• If you are creating a fast subsurface scattering effect from “scratch” then you will have to generate your own lightmaps using the Fast Subsurface Scattering Lightmap Write shader (see the Render Tree Usage section for details on how to do this). • For more information about lightmaps and how they are used in XSI, see Lightmaps [Texturing]. |
The light layers are added together in the following order, from top to bottom: specular highlights, diffuse illumination, front scattering, back scattering.

Fast Subsurface Scattering Component Shaders
The Fast Simple Subsurface Scattering Shader and the Fast Skin Subsurface Scattering Shader are material phenomena — pre-configured groups of shaders designed to produce a specific effect.
Due to the fact that a material phenomenon “takes over” the entire definition of a material (surface shader, shadow shader, photon shader, lightmap shader, displacement shader, etc.), the component shaders that make up these two subsurface scattering phenomena are available for you to use individually in your own particular render tree setup.
These are the fast subsurface scattering component shaders:
• Fast Subsurface Scattering Shader
• Fast Subsurface Scattering Lightmap Write
• Fast Subsurface Scattering Lambert Gamma Shader
• Fast Subsurface Scattering Specular Skin Shader
• Fast Subsurface Scattering Call Shader
Once you have built your render tree network of subsurface scattering shaders, you can package it up as a shader compound exposing only those inputs and outputs required to tweak the effect and then apply it to the objects and models in your scene. For more information, see Creating Shader Compounds [Material and Shader Basics].
To help you create subsurface scattering effects using the component shaders, you can follow the example of the SimpleSSS and the SkinSSS subsurface scattering shader compounds available from the SSS Compound category in the preset manager. Just drag and drop either shader compound into the render tree workspace and edit it to view how the subsurface scattering component shaders contained within it are connected together.
Creating a Fast Subsurface Scattering Effect
The Fast Subsurface Scattering shader is a material phenomenon — a pre-configured group of shaders designed to produce a specific effect. As such, all you need to do is connect the shader to the Material port of the shaded object’s Material node. You can then open the shader’s property editor and begin tuning the parameters.
![]()
|
This section discusses only the main parameters that you need to create a subsurface scattering effect. For information about all of the Fast Subsurface Scattering shader’s parameters, see Fast Simple Subsurface Scattering Shader. |
To create a fast subsurface scattering effect
1. Select the object to which you want to apply the subsurface scattering effect and press 7 to open the render tree.
2. From the render tree menu, choose Nodes > Illumination > Fast Simple Subsurface Scattering.
3. Connect the Fast Simple Subsurface Scattering node’s output to the Material node’s Material port.

4. Double click the Fast Subsurface Scattering node to open its property editor.
5. Set the following parameters to define the effect:
- The surface illumination parameters on the Surface tab. These are described in the next section: Defining the Surface Illumination.
- The front and back scattering parameters on the Scattering tab. These are described in Defining Scattering.
6. If you want to include indirect illumination such as global illumination and final gathering in the shader’s lightmap, set the RGB Radiance color values on the Advanced Settings tab to control the amount of indirect illumination that gets sampled and stored in the lightmap and scattered over the object’s surface.
These options can increase render times significantly and they should be used only if the indirect light in your scene is significant enough that seeing it scattered or not makes a big enough difference to warrant the extra rendering time.
7. If desired, you can apply a bump or displacement map, as described in Adding Bump and Displacement Maps.
Defining the Surface Illumination
The options on the Surface tab of the Fast Subsurface Scattering shader’s property editor define the shaded object’s outer surface.
The Specular Layer
Specular illumination is the topmost, or outermost layer in the overall subsurface scattering effect. It defines specular highlights that are layered on top of all of the other lighting components.
Specular highlights are controlled by two parameters:
• Color specifies the color of the specular highlights. When the color is black, no specular highlights are rendered.
• Decay controls the size of the highlights. Larger values create smaller, sharper highlights, and vice versa.

The Diffuse Layer
Diffuse illumination is layered directly underneath the specular highlight layer, but above the front and back scattering layers.
Diffuse illumination is controlled by two parameters:
• Color specifies the color of the diffuse illumination. This is the object’s main surface color, and is the normal place to connect any surface texture that you wish to apply to the object.
• Weight controls how much the diffuse illumination contributes to the overall effect.
Generally speaking, increasing the diffuse weight makes the shaded object appear less translucent, although this depends largely on how the front and back scattering layers are set up. Certainly higher weights make the diffuse color more prominent.

Ambience
The Ambience parameter defines the shaded object’s ambient lighting component. Ambient lighting is included in the shader’s lightmap, and is scattered like other light.
You can use this parameter to perform simple ambient lighting adjustments, or you can connect it to shaders that add additional diffuse light to the object’s surface. This additional diffuse light is incorporated into the light scattering calculations.
The Overall Color Multiplier
The Overall Color Multiplier parameter allows you to globally adjust the color of the subsurface scattering effect. This is useful for brightening, darkening, or tinting the effect after you’ve set up the other lighting contributions. It is also a good place to connect texture maps that define areas with little or no light scattering. For example, if you want to add a layer of dirt, which would block most scattered light, you could connect a dirt texture to this parameter.
The options on the Scattering tab of the Fast Subsurface Scattering shader’s property editor control how light is scattered on the shaded object’s front and back surfaces.
• The front surface is the first surface seen from the render pass camera’s point of view. Front scattering is scattering that is directly visible in the rendered image.
• The back surface is the next surface behind the front surface. Back scattering is scattering that becomes visible when the back surface is lit, and the light scatters far enough through the object to be visible on the front surface.
Because the front and back surfaces shift, depending on the position of the camera, the scattering effect is extremely view-dependent. As a rule, scattering on either surface is most visible when that surface is lit directly.
![]()
|
One side effect of fast subsurface scattering’s view dependency is that the scattering effect is computed only enough to display properly when seen from the camera’s point of view. As a result, scattering on the back surface of the object often contains artifacts when seen in a reflective surface (a mirror behind the camera, for example). |
Front Scattering
Front scattering is created when light passes just below an object’s surface, underneath the diffuse shading, and scatters.
Front scattering is controlled by four parameters:
• Color defines the color of the front-scattered light. The brighter the color value, the more intense the front scattering appears.
• Weight controls the degree to which front scattering contributes to the overall effect.
• Radius controls how far light is scattered along the front surface.
• Falloff controls the falloff profile for front-scattered light. Higher values create a sharper falloff and vice-versa.
If the falloff value is set high enough, it may cause the radius to appear shorter. If this is the case, increase the radius to smooth the front scattering.

Back Scattering
Back scattering is scattering that becomes visible when the shaded object’s back surface is lit, and the light scatters deep enough within the object that it becomes visible on the front surface.
Unless a large amount of back scattering, and a very bright back light have been defined, back scattering is generally only visible on the edges, or particularly thin parts of backlit objects.
Back scattering is controlled by four parameters:
• Color defines the color of the back-scattered light. The brighter the color value, the more intense the back scattering appears.
• Weight controls the degree to which back scattering contributes to the overall effect.
• Radius controls how far light is scattered along the back surface.
• Depth controls how deeply light scatters within the object. The higher the value, the more likely it is that back scattering will be visible from the camera’s point of view.
![]()
|
As you increase the Depth, you’ll probably need to increase the number of lightmap samples to smooth out the effect. See Lightmap Samples for details. Normally, Radius and Depth should be set to the same value. |
![]()
|
![]()
|
|
The back scattering Color is bright red, and the Weight is fairly high (0.75). However, a low Depth value (5) makes the back scattering visible only on the edges of areas where the object is brightly backlit. |
Increasing the Depth to 50 makes the back scattering visible through much more of the object. |
![]()
|
![]()
|
|
Increasing the Depth and brightening the Color value’s red component brightens the back scattering further. |
Finally, increasing the Weight to 1 makes the back scattering far more prominent wherever it is visible. |
The Bias parameter allows you to adjust the subsurface scattering effect to favor either forward scattering or backward scattering, depending on whether the bias value is positive or negative.
• Forward scattering means that more light from the back surface will scatter forwards. Positive Bias values favor forward scattering.
• Backward scattering means that more light from the front surface will scatter backwards. Negative Bias values favor backward scattering.
Typically, small values (in the -0.1 to 0.1 range) are used to subtly nudge the final scattering effect in one direction or another.
The Lightmap Samples parameter controls the number of times the lightmap is sampled for each rendered ray. This helps to smooth the scattering effect when speckling artifacts appear.
For subtle scattering, this value need not be particularly high (128 or lower), but for intense back scattering, you may need to increase the value quite a bit. Increasing the number of samples does increase render times, although you shouldn’t see much of an impact until you start using relatively high values (1024 or greater). For best results, increase the number of samples by powers of two (32, 64, 128, 256, and so on).

Adding Bump and Displacement Maps
The Fast Subsurface Scattering shader’s render tree node has a Bump port that accepts bump map connections and a displace port that accepts displacement map connections. As you might imagine, these ports allow you to add bumping and displacement to the shaded object’s surface.

For example, the images below show a crystal cow sculpture with and without a bump map shader connected to the Subsurface scattering shader’s Bump port.

For more information about creating bump and displacement maps, see the following sections:
• Creating Bump Maps [Texturing]
• Creating a Displacement Map [Texturing]
These sections describe how to apply bump and displacement maps to conventionally shaded objects. You can use the same techniques to apply these maps to subsurface-scattering shaded objects. The only difference is that you’ll be working with the Subsurface Scattering shader’s ports instead of the Material node’s ports.
Bump Mapping and Scattered Light
When you apply a bump map to an object shaded using the Fast Subsurface Scattering shader, keep in mind that it will affect only the diffuse and specular lighting contributions. This is because bump mapping only affects the surface of the object, while all light scattering happens below the surface.
When you create a strong back scattering effect, it’s important to pay attention to the geometry that sits between the shaded object’s front and back surfaces, since it will block scattered light and be visible in the scattering effect.
In cases where you actually want to block light — to create a silhouette inside of a shaded object, for example — you can apply the exterior object’s material to the interior object. This ensures that both objects are included in the lightmap computations, and participate in the scattering effect. The interior object will block the light and become more visible as you increase the back-scattering depth.

Scaling the Fast Subsurface Scattering Effect
Many of the Fast Subsurface Scattering shader’s parameters, such as radius and depth, are extremely distance-dependent. This means that if you create the effect on an object measured in millimeters, and assign than object’s material to an object measured in inches, the effect will not look at all the same.
The Scale parameter on the Advanced Settings tab of the Fast Subsurface Scattering shader’s property editor is a simple multiplier for distance base values. Set the value to the appropriate conversion factor when switching between measurement units.
The Fast Skin Subsurface Scattering Shader is a specialized, and more complex variant of the Fast Simple Subsurface Scattering Shader, specifically designed to simulate human skin. It supports three levels of light scattering, two levels of specular highlights, and glossy raytraced reflections. All of the scattering, illumination and specularity layers are added together to produce the final skin effect. Applying and tuning the Fast Skin shader is very similar to applying and tuning the Fast Subsurface Scattering shader.
SOFTIMAGE|XSI v.7.0