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:

  1. 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.
  2. 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.