The 3D Handbook
Key term

Subsurface scattering

Light that enters a material, scatters inside it and leaves at another point, as in skin, wax, leaves, snow and marble; how Unreal's Subsurface, Subsurface Profile and Two Sided Foliage models, Unity HDRP diffusion profiles and thickness maps approximate it in real time.

materialsshadinglightingcharactersfoliage

Subsurface scattering (SSS) is what happens when light "penetrates a surface and then diffuses throughout it" before leaving again, often at a different point and with a different colour (Unreal Engine documentation: Shading Models in Unreal Engine). It gives skin its soft, warm look, makes wax and marble glow at the edges, and lets light shine through leaves and ears.

Standard PBR shading treats light as bouncing off the point it hit. That works for metal or concrete, but makes skin, wax, snow and leaves look hard and dry.

#Scattering and transmission

Two related effects are usually grouped under the term.

  • Scattering under the surface. Light enters, bounces around inside and exits nearby. Shadows and small details are softened, and the colour of the inner material (red for skin, which has blood under it) shows at shadow edges. Unreal's Subsurface Color input "defines the color of the matter just beneath the surface of the object" (Unreal Engine documentation: Shading Models in Unreal Engine).
  • Transmission through thin parts. Light from behind passes right through a thin object and lights it from the back: a leaf against the sun, an ear, a curtain. Unreal's Two Sided Foliage model "allows light transmission through the surface of the Material" (Unreal Engine documentation: Shading Models in Unreal Engine).
Two panels. Left, light enters a block of material, follows a zigzag path inside and exits further along the surface; label skin, wax, marble, snow. Right, a wedge-shaped slab lit from below: at the thin end a strong arrow passes through, at the thick end only a faint one; label thickness map, thin areas are bright.
Left, scattering under the surface softens and colours light. Right, transmission depends on thickness, which is why games bake or paint a thickness map for leaves, ears and cloth.Diagram by the handbook author

#Real-time approximations

Screen-space profiles blur the lighting of SSS pixels on screen using a falloff profile. Unreal's Subsurface Profile model "is based in screen space" and is "geared towards higher-end skin rendering" (Unreal Engine documentation: Subsurface Profile Shading Model in Unreal…; Unreal Engine documentation: Shading Models in Unreal Engine). Epic credits the technique to "work from Jorge Jimenez" (Unreal Engine documentation: Subsurface Profile Shading Model in Unreal…). HDRP stores the same kind of settings in a Diffusion Profile asset (Unity documentation: Diffusion Profile reference).

Cheaper per-material models wrap light further around the surface and add a subsurface colour. Unreal's Subsurface model works this way, and Preintegrated Skin "prioritizes lower performance cost while sacrificing some accuracy" (Unreal Engine documentation: Shading Models in Unreal Engine).

Thickness-based translucency fakes light coming through from behind. Colin Barré-Brisebois's GDC 2011 talk for Frostbite presented "a fast and scalable approximation of translucency for a convincing subsurface scattering look" as an alternative to "complex and expensive techniques" (Frostbite: Approximating Translucency for a Fast, Cheap…). A thickness map controls where more light gets through; Substance 3D Painter bakes one alongside the other mesh maps, and thin parts come out bright (Substance 3D Painter documentation: Bake Mesh Maps; Marmoset: The Toolbag Baking Tutorial).

Material Typical real-time setup
Skin Screen-space profile (Subsurface Profile, HDRP diffusion profile) (Unreal Engine documentation; Unity documentation)
Leaves, grass, paper Two Sided Foliage or HDRP Thin Object transmission (Unreal Engine documentation; Unity documentation)
Wax, marble, jade Subsurface Profile is documented for "skin or wax surfaces" (Unreal Engine documentation); Subsurface model for cheaper cases (Unreal Engine documentation)
Ice, snow, thick bodies Subsurface model; HDRP Thick Object transmission, which "uses shadow maps" (Unity documentation)
Two pairs of palm-like plants against a black background. On the left, labelled Shadows, the leaves facing away from the light are almost black. On the right, labelled Shadows+Transmission, the same leaves glow green where light passes through them.
Transmission on thin foliage. Godot's Back Lighting setting "controls how much light from the lit side (visible to light) is transferred to the dark side", which the documentation recommends for leaves, grass and ears. Screenshot from Godot.Godot Engine documentation (Juan Linietsky, Ariel Manzur and the Godot community), CC BY 3.0

#How to set one up

The steps use Unreal Engine 5 for skin and foliage, with the Unity HDRP equivalent after them.

  1. Pick the shading model. For a character head, set the material's Shading Model to Subsurface Profile; for leaves, use Two Sided Foliage (Unreal Engine documentation: Shading Models in Unreal Engine).
  2. Create a Subsurface Profile asset and assign it to the material. Set Surface Albedo to "match the base color of the corresponding material as closely as possible", and use Mean Free Path Color to control "how far light goes into the subsurface" per colour channel (Unreal Engine documentation: Subsurface Profile Shading Model in Unreal…).
  3. Check the scale. World Unit Scale "Controls the scale of world/Unreal Units in centimeters" (Unreal Engine documentation: Subsurface Profile Shading Model in Unreal…). A head imported at the wrong scale scatters far too much or too little.
  4. Mask it. "The Opacity input channel is used to mask the Subsurface scattering contribution": 0 for none, 1 for full (Unreal Engine documentation: Subsurface Profile Shading Model in Unreal…). Use a texture to reduce scattering on areas such as eyebrows or stubble.
  5. For foliage, drive transmission with a mask. In Two Sided Foliage, Subsurface Color sets the amount of transmitted light and can mask "stems and veins of the leaves" (Unreal Engine documentation: Shading Models in Unreal Engine). A baked thickness map is a good starting mask (Substance 3D Painter documentation: Bake Mesh Maps).
  6. Test on the target platform. Subsurface Profile "does not work in the non-deferred (mobile) rendering mode", and "there is no backscatter of light" (Unreal Engine documentation: Subsurface Profile Shading Model in Unreal…).

Unity HDRP: create a Diffusion Profile asset and add it to the Diffusion Profile List in an active Volume, or HDRP will not detect it (Unity documentation: Diffusion Profile reference). Set Scattering Color close to the diffuse colour, and choose Thin Object for thin, double-sided geometry or Thick Object for solid objects (Unity documentation: Diffusion Profile reference). A Thickness Map is remapped to a range in millimetres with Thickness Remap (Unity documentation: Diffusion Profile reference). HDRP assumes 1 Unity unit is 1 metre (Unity documentation: Diffusion Profile reference).

#Video tutorials

#Use in recent games

Foliage atlases carry several masks, including one for translucency. Bright areas in such a mask let more light through the leaf.Théophile Lebeau, via ArtStation
The same atlas through its colouring stages, from greyscale masks to seasonal colours. The translucency mask is authored for the same atlas layout.Théophile Lebeau, via ArtStation

#In different tools

Tool What it offers
Unreal Engine 5 Subsurface, Preintegrated Skin, Subsurface Profile and Two Sided Foliage shading models (Unreal Engine documentation); Subsurface Profile asset with Surface Albedo, Mean Free Path and World Unit Scale (Unreal Engine documentation)
Unity HDRP Diffusion Profile assets in a Volume list; Thick and Thin Object transmission; thickness map with remap in millimetres; dual specular lobes for lips (Unity documentation)
Substance 3D Painter Bakes a Thickness map with the other mesh maps (Substance 3D Painter documentation)
Marmoset Toolbag Thickness output in the baker (Marmoset)

#Further reading and watching

Related pages: curvature, thickness and ID maps, physically based rendering, foliage and vegetation, opacity, masked and translucent materials, shaders for artists, water surfaces, real-time lighting.

References

  1. Epic Games · Shading Models in Unreal Engine · Unreal Engine documentation · docs · accessed 2026-10-22
  2. Epic Games · Subsurface Profile Shading Model in Unreal Engine · Unreal Engine documentation · docs · accessed 2026-10-22
  3. Unity Technologies · Diffusion Profile reference (HDRP 17) · Unity documentation · docs · accessed 2026-10-22
  4. Colin Barré-Brisebois · Approximating Translucency for a Fast, Cheap and Convincing Subsurface-Scattering Look · Frostbite (EA), GDC 2011, 2011 · talk · accessed 2026-10-22
  5. Adobe · Bake Mesh Maps · Substance 3D Painter documentation · docs · accessed 2026-10-22
  6. Joe Wilson · The Toolbag Baking Tutorial · Marmoset, 2017 · article · accessed 2026-10-22
  7. GamersNexus, reporting a talk by Zak Parrish (Epic Games) · Paragon Rendering Technology: Subsurface Scattering (ECGC) · GamersNexus, 2016 · article · accessed 2026-10-22
  8. Ben Cloward · Subsurface Scattering - Advanced Materials - Episode 8 · YouTube · video · accessed 2026-10-22
  9. Jobutsu · Metahuman Skin - SSS, Transmission and Subsurface Profiles in Unreal Engine 5 · YouTube · video · accessed 2026-10-22
  10. Théophile Lebeau · Assassin's Creed Shadows: Foliage · ArtStation · web · accessed 2026-10-22
  11. Jorge Jimenez and Miguel Petersen (Striking Distance Studios) · The Rendering of The Callisto Protocol · SIGGRAPH 2023, Advances in Real-Time Rendering in Games, 2023 · talk · accessed 2026-10-22
  12. Nigel Ang, Andrew Catling, Francesco Cifariello Ciardi and Valentine Kozin (Rare) · The Technical Art of Sea of Thieves · SIGGRAPH 2018 Talks, 2018 · talk · accessed 2026-10-22
  13. Tianyi Zhang and Eugene d'Eon (NVIDIA) · Real-Time Subsurface Scattering via Hybrid ReSTIR-Path-Tracing and Diffusion · SIGGRAPH 2025, Advances in Real-Time Rendering in Games, 2025 · talk · accessed 2026-10-22

Also consulted

Last updated 2026-10-22