Subsurface Scattering Proposals in glTF
The Khronos 3D Formats Working Group is expanding the glTF physical-based rendering (PBR) ecosystem through its "PBR Next" initiative to natively support subsurface scattering (SSS). While current glTF extensions handle surface-level light interactions and basic volumetric absorption, true SSS addresses materials where light penetrates the surface, scatters internally, and exits at a different point—such as skin, wax, jade, and marble. This article outlines the existing proposals, draft extensions, technical parameters, and integration pathways currently under discussion to bring subsurface scattering to glTF.
The Foundation: Transitioning from Volume to Subsurface
Before addressing subsurface scattering directly, Khronos established baseline extensions for light passing through objects:
KHR_materials_transmission: Controls optical transparency and refraction without internal scattering.KHR_materials_volume: Introduces an internal medium to meshes, enabling absorption based on the Beer-Lambert law via thickness and attenuation distance parameters.
While KHR_materials_volume simulates how light loses
energy inside a colored, clear medium (such as tinted glass or liquid),
it lacks multi-scattering calculations. Light inside a volume model
travels in straight lines rather than diffusing outward, necessitating a
dedicated subsurface scattering model.
The
KHR_materials_subsurface Draft Proposal
The primary mechanism being developed within the Khronos 3D Formats
Working Group is the KHR_materials_subsurface extension.
This proposal introduces parameters to control the diffusion of light
within the volume of a mesh, bridging real-time approximations with
offline path-tracing capabilities.
The core parameters proposed for the extension include:
- Subsurface Factor (
subsurfaceFactor): A scalar value (and optional texture) determining the degree to which diffuse reflection is replaced by subsurface scattering. A factor of 0 maintains standard diffuse behavior, while 1 treats all diffuse lighting as scattered light. - Subsurface Color (
subsurfaceColor): Specifies the tint of the scattered light, which often differs from the surface base color due to multiple internal reflections and absorption (for example, the red tint seen when light passes through human ears). - Subsurface Radius / Scatter Distance
(
subsurfaceRadius): A 3-component vector specifying the mean free path (MFP)—the average distance light travels per color channel (RGB) before a scattering event occurs. This parameter governs how deeply and broadly red, green, and blue wavelengths diffuse through the material. - Subsurface Radius Scale
(
subsurfaceRadiusScale): A global multiplier used to scale the scatter distance uniformly across the asset, accommodating real-world scene scaling.
Thin-Walled Translucency vs. True Volumetric Diffusion
Khronos discussions separate subsurface phenomena into two distinct structural categories:
- Thin-Surface Translucency: Intended for geometry with no modeled interior thickness, such as foliage, paper, or fabric. In these cases, light is evaluated using a transmission model that transfers light directly from the back faces to the front faces without complex spatial diffusion.
- Volumetric (Thick) Diffusion: Intended for solid, closed meshes where light diffuses through a three-dimensional volume. This requires either screen-space diffusion profiles in real-time rasterizers or Monte Carlo random-walk algorithms in path tracers.
The working group has debated whether to address thin-walled
scattering under a general subsurface extension or via a dedicated
translucency extension. The prevailing consensus aligns toward handling
thin surfaces using the thickness property from
KHR_materials_volume set to zero, combined with subsurface
parameters to dictate back-to-front scatter.
Alignment with OpenPBR and Industry Standards
A significant driver of the glTF subsurface specification is convergence with broader industry initiatives, notably OpenPBR (developed jointly by Academy Software Foundation and Khronos members) and MaterialX.
OpenPBR integrates subsurface scattering as a dedicated layer consisting of weight, color, radius, radius scale, and anisotropy. To prevent fragmentation across 3D interchange formats, the Khronos working group is aligning the glTF subsurface extension closely with the OpenPBR Subsurface model. This alignment ensures that assets authored in tools using MaterialX or Autodesk Standard Surface can translate directly into glTF runtimes without loss of intent.
Implementation Challenges
The proposal's progression balances computational cost against visual fidelity across different rendering targets:
- Real-Time Engines: Rasterized game engines often rely on screen-space subsurface scattering (SSSS) or pre-integrated skin shading, which struggle with non-human materials, thin geometries, and extreme lighting angles.
- Ray Tracers: Path-tracing engines favor physically based random-walk subsurface scattering, which requires complete 3D volumetric data and can lead to divergence in visual output compared to rasterized engines.
The working group's primary objective remains standardizing a compact parameter set that provides enough physical grounding for path tracers while remaining simple enough to be approximated efficiently in WebGL and WebGPU real-time viewers.