TA Toolbox Home / TA Glossary

Subsurface Scattering SSS: Core Technology and Implementation for Skin Rendering

2026-08-24

What is Subsurface Scattering

Subsurface Scattering (SSS) is the phenomenon where light enters a translucent object, undergoes multiple scattering events inside, and eventually exits from a different point on the surface. Unlike simple surface reflection, SSS allows light to penetrate the surface and travel some distance inside, giving the object a soft, translucent appearance. The most typical example is human skin: when light hits the skin, part of it enters the epidermis and dermis, gets scattered by blood and tissue, giving the skin a reddish, translucent look. Other materials like wax, jade, milk, grapes also exhibit noticeable SSS. In computer graphics, simulating SSS is essential for creating realistic virtual characters and creatures.

Physical Principles and Optical Properties

The physical basis of SSS is the transport of light in participating media. When light enters a translucent material, it scatters and gets absorbed by particles (like cells, blood in skin). Scattering and absorption coefficients determine the light's path and attenuation. For skin, red light penetrates deeper, while blue and green are absorbed more, so light exiting the skin is reddish, creating the characteristic warm translucency.

Accurately simulating volumetric scattering in real-time requires expensive path tracing, so approximations are typically used. Common methods include:

  • **Texture Space Diffusion**: Unwrap the model into texture space, perform blurring in texture space, then map back to the 3D surface. Popularized by NVIDIA's demo team, suitable for real-time.
  • **Screen Space Blur**: After rendering the scene, apply depth-aware blur to objects with SSS material in screen space; efficient but less physically accurate.
  • **Pre-Integrated Skin Shading**: Use lookup tables storing scattering results for different curvatures and lighting angles, combined with normal maps to simulate fine scattering.
  • **Thin Surface Transmission**: For thin objects (like ears, leaves), compute light transmitted from the back side, adding translucency.

Real-Time Rendering Implementation Essentials

In game engines (like Unity, Unreal), high-quality SSS often combines multiple techniques:

  1. **Diffusion Profile**: Defines scattering distance and intensity for different color channels. For skin, red channel typically has longer scattering distance, blue shorter.
  2. **Screen-Space Subsurface Scattering**: In deferred rendering, blur pixels of skin material in screen space multiple times, weighted by depth and normals, to simulate nearby scattering.
  3. **Texture Space Diffusion**: Requires good UV unwrapping with no overlaps. Bake lighting results into texture space, perform Gaussian blur, then sample back onto the surface.
  4. **Transmission Term**: For thin areas like ears, nostrils, compute backlight intensity, multiply by transmission color, and add to final shading.
  5. Implementation notes: SSS should be computed in linear space for energy conservation; scattering radius must be adjusted for world-space scale; when combined with PBR, SSS is added to the diffuse term.

    Parameter Tuning and Art Direction

    SSS effect heavily depends on artistic parameter adjustment. Common parameters include:

    • **Scatter Color**: Controls the color of internally scattered light; for skin, typically reddish.
    • **Scatter Radius/Intensity**: Determines how far light travels inside and attenuation, affecting translucency.
    • **Transmission Color**: Color of light after passing through thin walls.
    • **Texture Weight**: Controls influence of detail normals on SSS to avoid blurring details.

    Tuning should reference real materials: skin scattering radius is a few millimeters to centimeters, and red scatters farther than blue. Performance considerations: screen-space blur can be downsampled; texture-space diffusion can precompute some results.

    Application Scenarios and Common Issues

    SSS is widely used for:

    • **Digital Humans**: Film and game characters, pursuing photorealistic skin.
    • **Wax, Jade, Food**: Enhance translucent quality.
    • **Vegetation**: Thin leaf translucency, simulating sunlight through leaves.

    Common issues include:

    • **Over-scattering making materials look muddy**: Balance scattering intensity and blur radius.
    • **Discontinuities at UV seams**: Texture-space diffusion needs UV boundary handling.
    • **Performance cost too high**: Use downsampling, limit blur radius, or use pre-integrated techniques.

    Mastering SSS technology significantly enhances realism for characters and organic materials, an important advanced step in real-time rendering.

FAQ

What is the difference between subsurface scattering and transparent materials?

Subsurface scattering involves light entering translucent material, scattering internally, and exiting, causing light to travel inside the object. Transparent materials mainly involve transmission and refraction, with little internal scattering. SSS materials include skin, wax; transparent materials include glass, water.

How to implement skin SSS in Unity?

In Unity, use HDRP's Subsurface Scattering material, or custom shaders implementing screen-space blur or texture-space diffusion. Pay attention to adjusting diffusion profile parameters in linear space.

How to combine SSS with PBR materials?

In PBR, SSS is typically part of the diffuse term. Separate the part of diffuse lighting that needs scattering, apply diffusion profile blur, then add to specular term, maintaining energy conservation.

Can mobile real-time rendering support SSS?

Yes, but use lightweight approximations like pre-integrated skin shading or simple screen-space blur at low resolution. Balance effect and performance.

Why is red light scattering more pronounced in skin rendering?

Blood and melanin in skin absorb blue and green light strongly but absorb red weakly, so red light penetrates deeper and scatters out more, giving skin a warm red tone.