Subsurface Scattering simulates semi-transparent objects line a 3D configurator in which light rays penetrate, bounce around and then exit at a different location. Many organic and inorganic materials are not completely opaque directly on the surface, so light does not simply bounce off the top. Instead, some light penetrates deep into the surface of the skin and scatters inside, taking on the color of the inside and exiting at another point. Human or animal skin, the skin of grapes, tomatoes, fruits, wax, etc. all have subsurface scattering (SSS) and photorealistic imaging cannot be achieved.

was ist subsurface scattering e

It is important to understand that subsurface scattering and diffusion are one and the same. The difference is the extent to which the light can diffuse beneath the surface before it is absorbed or emitted again.

How it works.

The actual calculation of the light path under the surface of an object does not make sense. But it has been shown that it is not necessary to do this and that you can take a different approach.

Blender, for example, calculates SSS in two steps:

  1. First, the irradiance or brightness of the surface is calculated, both from the front of the object and from its back. This is pretty much the same as normal rendering. Ambient occlusion, radiosity, the type of diffuse shader, light color, etc. are taken into account.
  2. In the second step, the final image is rendered, but now the SSS shader replaces the diffuse shader. The calculated lightmap is used instead of the lamps. The brightness of a surface point is the calculated “average” of the brightness of its surrounding points. Depending on your settings, the entire surface can be considered and it is a little more complicated than just calculating the average, but don’t get confused by the underlying math.

Instead, let’s focus on what SSS does with a particular Lightpoint.

When you activate the SSS, the light is distributed over a larger area. The size of this area depends on the radius values. Instead of distributing all colors with the same amount, you can choose different radius values for each of the RGB colors.

Below is a demo of cgvirus SSS:

For privacy reasons YouTube needs your permission to be loaded. For more details, please see our Datenschutzerklärung.

When you use a very large radius value for a color, your light is evenly distributed throughout the object.

Note about the scattering radius: Because of the way this scattering is calculated, when using values with large radii, you will notice hem artifacts that appear as a complementary color to the dominant color of the scattering. One way to reduce this effect is to use and average multiple passes with different scattering diodes.

Enable SSS in Blender.

  • Activate SSS by clicking the Subsurface Scattering button
  • Various presets are available at the top. If you select a preset, the Radius values, RGB Radius and IOR will be set for you. The remaining options are not set (as they usually depend on the size of your object).

Subsurface scattering does not require raytracing. However, since it depends on the incident light and the shadows, you need a suitable shadow calculation (which requires a raytracing function).

Options.

The numeric sliders control how the light is scattered:

IOR.

The Index of Refraction determines the falloff of the incident light. Higher values mean that the light falls faster. The effect is very subtle and changes the distribution function only slightly. In the investigation of many different materials, values of (1.3 to 1.5) were found to work well for most materials.

Scale.

The size of your object in Blender units over which the scattering effect will occur. A scale of 1.0 means 1 Blender unit is equal to 1 mm, a scale of 0.001 means 1 Blender unit is equal to 1 meter. If you want to find out which scale value to use in your scene, just use the formula: (Size in Blender units) / (Real size in millimeters) = Scale.

Scattering color (Albedo).

Albedo is the probability that light will survive a scattering event. When you think of scattering as a filter, this is the height of the filter. It is multiplied by the surface color. In practice, this is not intuitive. It should be the same as the surface color, but changing this value has unintuitive effects on the scattering effect:

The darker the color, the more light is scattered. A value of 1 does not lead to a scattering effect.

So if you set it to green, the illuminated areas of the object will appear green and green will be scattered only slightly. Therefore, the darker areas appear in red and blue. You can compensate for the different scatters by setting a larger radius for the color.

RGB Radius.

This is not the radius of subsurface scattering, but the average path length between scattering events. As the light travels through the object, it jumps around and then exits the surface at another point. This value corresponds to the average length the light travels between bounces. The longer the path, the further the light can scatter. This is the main source for the perceived “scattering color” of a material. A material like the skin has a higher red radius than green and blue. Subsurface scattering is the control of light beneath the surface. They control how far the light propagates to achieve a certain result.

Blend.

  • Color: Controls how much the RGB option modulates the diffuse colors and textures. Note that even if this option is set to 0.0, the RGB option affects the scattering behavior.
  • Texture: How much the surface structure blurs with the shading.

Scattering weight.

  • Front: Factor to increase or decrease front scattering. When light enters through the front of the object, how much is absorbed or added? (Normally 1.0 or 100%).
  • Back: Factor to increase or decrease back scattering. Light hitting an object from behind can go all the way through the object and come out on the front of the object. This happens especially with thin objects such as hands and ears.

Mistake.

This parameter controls how accurately the algorithm scans the surrounding points. If you leave it at 0.05, you should get images without artifacts. It can be set higher to speed up rendering, possibly with errors.

Setting to 1.0 is a good way to quickly get a preview of working with errors.

Development of your own SSS material.

The traditional approach.

A more common but less intuitive approach is the use of layering. This is a simplified version of the layering approach:

  • Set the SSS color to a value of your choice, usually the dominant color of the object. If you want to use different radii for the colors, don’t make it too dark.
  • Set the scale factor. If you want to see viewl transculence, you need small objects or large format values.
  • Set the radius values.
  • Adjust the brightness with the Front and Back values.

A more intuitive approach.

  • Set the scattering color to 0.5.
  • Set the front weight to 2.0.
  • Set the Scale Factor based on the size of your object relative to the scene. If you want to see a lot of transculence, you need small objects or large format values.
  • Adjust the radius values accordingly.

We hope that we could give you a first, small overview of subsurface scattering. If you have any questions or suggestions, please do not hesitate to contact our experts in our forum.

Thank you very much for your visit.