Hubbry Logo
Subsurface scatteringSubsurface scatteringMain
Open search
Subsurface scattering
Community hub
Subsurface scattering
logo
8 pages, 0 posts
0 subscribers
Be the first to start a discussion here.
Be the first to start a discussion here.
Subsurface scattering
Subsurface scattering
from Wikipedia
Real-world subsurface scattering of light in a photograph of a human hand
Computer-generated subsurface scattering in Blender

Subsurface scattering (SSS), also known as subsurface light transport (SSLT),[1] is a mechanism of light transport in which light that penetrates the surface of a translucent object is scattered by interacting with the material and exits the surface potentially at a different point. Light generally penetrates the surface and gets scattered a number of times at irregular angles inside the material before passing back out of the material at a different angle than it would have had if it had been reflected directly off the surface.

Subsurface scattering is important for realistic 3D computer graphics, being necessary for the rendering of materials such as marble, skin, leaves, wax and milk. If subsurface scattering is not implemented, the material may look unnatural, like plastic or metal.

Rendering techniques

[edit]
Direct surface scattering (left) plus subsurface scattering (middle) creates the final image on the right.

To improve rendering efficiency, many real-time computer graphics algorithms only compute the reflectance at the surface of an object. In reality, many materials are slightly translucent: light enters the surface; is absorbed, scattered and re-emitted – potentially at a different point. Skin is a good case in point; only about 6% of reflectance is direct, 94% is from subsurface scattering.[2] An inherent property of semitransparent materials is absorption. The further through the material light travels, the greater the proportion absorbed. To simulate this effect, a measure of the distance the light has traveled through the material must be obtained.

Random walk SSS

[edit]
Random walk SSS in Equinox3D's path-tracer
Random walk SSS + PBR surface reflection in Equinox3D's path-tracer

Published by Pixar, this technique is considered the state of the art.[citation needed] Usually integrated into a path-tracer. It essentially simulates what happens to real photons by tracing a light path into the material, generating new paths using a lambertian distribution around the inverted normal, then picking new directions at multiple steps to scatter the light path further, hence the name "random walk". Isotropic scattering is simulated by picking random directions evenly along a sphere. Anisotropic scattering is simulated usually by using the Henyey-Greenstein phase function. For example, human skin has anisotropic scattering. Optical depth / absorption is applied based on the length of the paths, using the Beer-Lambert law. Paths may be terminated inside the material when they reach a contribution minimum threshold or a maximum iteration count. When a path (ray) hits the surface again, it is used for gathering radiance from the scene, weighted by a lambertian distribution, as in a traditional path-tracer. This technique is intuitive and it is robust against thin geometry etc.

Depth Map based SSS

[edit]
Depth estimation using depth maps

One method of estimating this distance is to use depth maps,[3] in a manner similar to shadow mapping. The scene is rendered from the light's point of view into a depth map, so that the distance to the nearest surface is stored. The depth map is then projected onto it using standard projective texture mapping and the scene re-rendered. In this pass, when shading a given point, the distance from the light at the point the ray entered the surface can be obtained by a simple texture lookup. By subtracting this value from the point the ray exited the object we can gather an estimate of the distance the light has traveled through the object.[citation needed]

The measure of distance obtained by this method can be used in several ways. One such way is to use it to index directly into an artist created 1D texture that falls off exponentially with distance. This approach, combined with other more traditional lighting models, allows the creation of different materials such as marble, jade and wax.[citation needed]

Potentially, problems can arise if models are not convex, but depth peeling[4] can be used to avoid the issue. Similarly, depth peeling can be used to account for varying densities beneath the surface, such as bone or muscle, to give a more accurate scattering model.

As can be seen in the image of the wax head to the right, light isn't diffused when passing through object using this technique; back features are clearly shown. One solution to this is to take multiple samples at different points on surface of the depth map. Alternatively, a different approach to approximation can be used, known as texture-space diffusion.[citation needed]

Texture space diffusion

[edit]

As noted at the start of the section, one of the more obvious effects of subsurface scattering is a general blurring of the diffuse lighting. Rather than arbitrarily modifying the diffuse function, diffusion can be more accurately modeled by simulating it in texture space. This technique was pioneered in rendering faces in The Matrix Reloaded,[5] but is also used in the realm of real-time rendering techniques.

The method unwraps the mesh of an object using a vertex shader, first calculating the lighting based on the original vertex coordinates. The vertices are then remapped using the UV texture coordinates as the screen position of the vertex, suitable transformed from the [0, 1] range of texture coordinates to the [-1, 1] range of normalized device coordinates. By lighting the unwrapped mesh in this manner, we obtain a 2D image representing the lighting on the object, which can then be processed and reapplied to the model as a light map. To simulate diffusion, the light map texture can simply be blurred. Rendering the lighting to a lower-resolution texture in itself provides a certain amount of blurring. The amount of blurring required to accurately model subsurface scattering in skin is still under active research, but performing only a single blur poorly models the true effects.[6] To emulate the wavelength dependent nature of diffusion, the samples used during the (Gaussian) blur can be weighted by channel. This is somewhat of an artistic process. For human skin, the broadest scattering is in red, then green, and blue has very little scattering.[citation needed]

A major benefit of this method is its independence of screen resolution; shading is performed only once per texel in the texture map, rather than for every pixel on the object. An obvious requirement is thus that the object have a good UV mapping, in that each point on the texture must map to only one point of the object. Additionally, the use of texture space diffusion provides one of the several factors that contribute to soft shadows, alleviating one cause of the realism deficiency of shadow mapping.[citation needed]

See also

[edit]

References

[edit]
[edit]
Revisions and contributorsEdit on WikipediaRead on Wikipedia
from Grokipedia
Subsurface scattering is a fundamental light transport phenomenon in where incident penetrates the surface of a translucent or semi-translucent material, interacts with its internal microstructure through multiple events, and exits at a different location, producing a soft, diffused glow that enhances visual realism. This process contrasts with surface reflection models, as it accounts for diffusion within the material rather than immediate bounce-off, making it essential for accurately simulating the appearance of organic and inorganic substances like , , , , and plant leaves. The effect is particularly prominent in materials with high translucency and low absorption, where light can travel significant distances subsurface before re-emerging, softening shadows and reducing the visibility of fine surface details to mimic natural subsurface diffusion. Without subsurface scattering, rendered objects appear unnaturally opaque or waxy, failing to capture the characteristic translucency observed in real-world scenes, such as the reddish tint of earlobes under backlighting or the veined patterns in marble. This phenomenon is computationally intensive, as full simulation via path tracing or Monte Carlo methods can increase rendering times by factors of two or more, necessitating approximations for real-time applications in video games and interactive visualizations. In rendering pipelines, subsurface scattering is typically modeled using the Bidirectional Scattering-Surface Reflectance Distribution Function (BSSRDF), which extends traditional surface reflectance models like the (BRDF) to handle light transport across material boundaries. Pioneering work in the late 1990s and early 2000s, including dipole diffusion approximations and techniques, enabled efficient computation of these effects, earning recognition such as a 2004 Academy Award for advancements in rendering translucent materials. Modern implementations in engines like and incorporate real-time approximations, such as texture-space diffusion or precomputed radiance transfer, to balance fidelity and performance in , , and .

Fundamentals

Definition

Subsurface scattering (SSS) is a light transport phenomenon in which light penetrates the surface of a translucent or semi-translucent , undergoes multiple internal , and re-emerges at a different location on the surface, distinct from direct surface reflection modeled by bidirectional reflectance distribution functions (BRDFs). This process contrasts with surface reflection, where light bounces off the exterior without entering the , allowing SSS to capture the of light within the volume. Common materials exhibiting subsurface scattering include , , , , and plant leaves, where the internal structure causes to interact extensively before exiting. In these materials, absorption and depend on and , leading to realistic appearances that pure surface models cannot replicate. Visually, subsurface scattering produces effects such as softened edges around illuminated areas, color bleeding where one region's hue diffuses into adjacent shadowed zones, and reduced sharpness in shadows due to diffusion across the surface. These characteristics contribute to the lifelike quality of rendered scenes, enhancing in translucent objects. In , subsurface scattering gained recognition in the early as essential for photorealistic rendering, particularly through practical models that enabled efficient simulation of these effects in translucent materials.

Physical Principles

Subsurface scattering occurs in participating media, which are translucent materials such as , , or plant tissues that allow to penetrate, interact internally through absorption, , and transmission, and exit at different points on the surface. In these media, incoming is partially transmitted across the surface interface, then undergoes multiple internal interactions where photons are absorbed (converting energy to heat or other forms), scattered (redirected by particles), or transmitted further without redirection, leading to a diffused appearance distinct from surface reflection. This internal propagation is governed by the equation, which balances these interactions to describe light transport. The primary scattering mechanisms in participating media depend on particle size relative to the light . For small particles (much smaller than the , e.g., molecules in clear materials), dominates, producing isotropic diffusion with intensity inversely proportional to the fourth power of the , resulting in blue-tinted scattering, as observed in the Earth's atmosphere (the blue sky). For larger particles (comparable to or greater than the , e.g., cells in biological tissues), prevails, often forward-directed and less wavelength-dependent, enhancing light diffusion over longer paths in denser media like or leaves. These mechanisms collectively cause the soft, blurred glow characteristic of subsurface scattering by randomizing light directions multiple times. Material properties are quantified by the absorption coefficient σa\sigma_a, which measures the probability of absorption per unit , and the coefficient σs\sigma_s, which indicates the likelihood of events. The effective of is inversely related to these coefficients: high σa\sigma_a limits depth by rapid energy loss, while high σs\sigma_s promotes but can also trap if absorption is low; the reduced coefficient σs=σs(1g)\sigma_s' = \sigma_s (1 - g), where gg is the average cosine of the , further refines this by accounting for forward bias in anisotropic media. At material interfaces, boundary conditions govern entry and exit, with Fresnel reflection determining the fraction of reflected based on the incident angle and difference (e.g., air to material). The Fresnel transmittance allows partial entry, while diffuse reflectance approximations (e.g., Fdr1.44/η2+0.71/η+0.668+0.066/ηF_{dr} \approx -1.44/\eta^2 + 0.71/\eta + 0.668 + 0.066/\eta) model the average reflection for scattered exiting the medium. In real-world observations, subsurface scattering intensifies at grazing angles due to longer internal path lengths, increasing interactions and diffusion; for example, dusty surfaces appear brighter and more diffuse when viewed obliquely compared to normal incidence, as scattering from subsurface particles dominates over direct reflection.

Theoretical Models

Diffusion Approximation

The diffusion approximation provides a mathematical simplification of the radiative transfer equation (RTE) for modeling multiple scattering of light in participating media, particularly where photons undergo numerous scattering events that randomize their directions. This approximation is derived by expanding the radiance in a low-order spherical harmonics basis (P1 approximation), assuming the angular distribution is nearly isotropic due to frequent scattering. Specifically, the radiance L(r,ω)L(\mathbf{r}, \boldsymbol{\omega}) is approximated as L(r,ω)ϕ(r)4π+3ωJ(r)4πL(\mathbf{r}, \boldsymbol{\omega}) \approx \frac{\phi(\mathbf{r})}{4\pi} + \frac{3\boldsymbol{\omega} \cdot \mathbf{J}(\mathbf{r})}{4\pi}, where ϕ(r)\phi(\mathbf{r}) is the fluence and J(r)\mathbf{J}(\mathbf{r}) is the net flux vector. Substituting this expansion into the RTE and performing moment integrals over directions (zeroth and first moments) eliminates the angular dependence, yielding the diffusion equation under the assumptions of isotropic scattering (or mildly anisotropic with asymmetry factor g0g \approx 0) and low absorption relative to scattering (high albedo ω=σs/(σa+σs)1\omega = \sigma_s / (\sigma_a + \sigma_s) \approx 1). The resulting steady-state diffusion equation is ([D](/page/D)ϕ)+σaϕ=S,\nabla \cdot (-[D](/page/D*) \nabla \phi) + \sigma_a \phi = S, where ϕ\phi is the scalar fluence (integrated radiance over all directions), σa\sigma_a is the absorption coefficient, SS is the isotropic source term (typically representing light after the first scattering event plus any internal emission), and DD is the diffusion coefficient defined as D=13(σa+σs(1g))D = \frac{1}{3(\sigma_a + \sigma_s'(1 - g))}, with σs\sigma_s' the reduced scattering coefficient and gg the asymmetry factor of the phase function. This model is valid in highly scattering media where the optical thickness τ=(σa+σs)L1\tau = (\sigma_a + \sigma_s) L \gg 1 (with LL the characteristic medium size), ensuring the =1/(σa+σs)\ell = 1/(\sigma_a + \sigma_s) is much smaller than LL (/L<104\ell / L < 10^{-4}) and light directions become effectively randomized after multiple interactions. The diffusion approximation was introduced to by Jos Stam in , who adapted it from theory to simulate multiple in heterogeneous participating media, solving the equation numerically via finite element methods (including a blob basis approach) and multi-grid finite differences for . Its limitations include inaccuracy in low-scattering regimes (small τ\tau) where ballistic or single-scattered dominates, or in highly directional media (low gg) where the isotropic radiance assumption breaks down, leading to errors near boundaries or light entry points.

Dipole Model

The dipole model provides an analytical approximation to the for modeling subsurface scattering in semi-infinite homogeneous media, employing virtual point sources to enforce boundary conditions at the surface. It consists of a positive placed inside the medium to represent the inward injection and a negative positioned outside to account for the extrapolated boundary, ensuring no flux escapes the domain unrealistically. This dipole configuration, originally derived in the context of biomedical , was adapted for to enable efficient computation of light transport without numerical solving of partial differential equations. The formulation, introduced by Jensen et al., expresses the diffuse BSSRDF Sd(xi,ωi;xo,ωo)S_d(x_i, \omega_i; x_o, \omega_o) as the product of incoming and outgoing Fresnel transmittance terms with a radial profile Rd(r)R_d(r): Sd(xi,ωi;xo,ωo)=1πFt(η,ωi)Rd(xixo)Ft(η,ωo)S_d(x_i, \omega_i; x_o, \omega_o) = \frac{1}{\pi} F_t(\eta, \omega_i) \, R_d(\|x_i - x_o\|) \, F_t(\eta, \omega_o) where FtF_t is the Fresnel transmittance for light entering (ωi\omega_i) and exiting (ωo\omega_o) the medium with relative index of refraction η\eta, and the profile is given by Rd(r)=α4π[(σtrdr+1)eσtrdrσtdr3+zv(σtrdv+1)eσtrdvσtdv3].R_d(r) = \frac{\alpha'}{4\pi} \left[ \frac{(\sigma_{tr} d_r + 1) e^{-\sigma_{tr} d_r}}{\sigma'_t d_r^3} + \frac{z_v (\sigma_{tr} d_v + 1) e^{-\sigma_{tr} d_v}}{\sigma'_t d_v^3} \right]. Here, dr=xoxrd_r = \| x_o - x_r \| and dv=xoxvd_v = \| x_o - x_v \| are distances from the exit point xox_o to the real source xr=(xi,0,zr)x_r = (x_i, 0, z_r) at depth zr=1/σtz_r = 1 / \sigma'_t and to the virtual source xv=(xi,0,zv)x_v = (x_i, 0, z_v) at zv=zr+4ADz_v = z_r + 4 A D above the surface, with A=(1+Fdr)/(1Fdr)A = (1 + F_{dr}) / (1 - F_{dr}) as the dipole factor using diffuse reflectance FdrF_{dr} and D=1/(3σt)D = 1/(3 \sigma'_t) the mean diffusion length. The reduced albedo is α=σa/σt\alpha' = \sigma_a / \sigma'_t, the effective transport extinction is σtr=3σaσt\sigma_{tr} = \sqrt{3 \sigma_a \sigma'_t}
Add your contribution
Related Hubs
User Avatar
No comments yet.