Subsurface Scattering (SSS) beschreibt das Phänomen, bei dem Licht in eine transluzente Oberfläche eindringt, darunter gestreut wird und an anderer Stelle austritt – entscheidend für realistische Darstellung von Haut, Wachs, Marmor und Jade.
Rubrik: Animation & VFX · Unterrubrik: Render-Engines · Niveau: Fortgeschritten Synonyme / Auch bekannt als: SSS, Subsurface Scattering, Transluzenz-Shading, BSSRDF
Was ist Subsurface Scattering?
Wenn Licht auf Haut trifft, wird es nicht vollständig reflektiert oder absorbiert: Ein Teil dringt in die Haut ein, streut an den verschiedenen Gewebeschichten (Epidermis, Dermis) und tritt an einem etwas anderen Punkt wieder aus. Dieser Effekt macht Haut organisch, warm und lebend – ohne SSS sieht Haut wächsern, plastikähnlich und tot aus.
SSS ist entscheidend für: menschliche und tierische Haut, Wachs (Kerzen), Marmor, Jade, Milch, Gummimaterialien, Blütenblätter, bestimmte Kunststoffe.
Erklärung
Physikalisches Prinzip
Mathematisch wird SSS durch die BSSRDF (Bidirectional Subsurface Scattering Distribution Function) beschrieben – eine Erweiterung der BRDF, die räumliche Versätze zwischen Ein- und Austrittspunkt berücksichtigt. Das volle BSSRDF-Integral ist sehr teuer zu berechnen; alle praktischen SSS-Implementierungen nutzen Näherungen.
Mittlerer freier Pfad (Mean Free Path): Die durchschnittliche Distanz, die ein Photon im Material zurücklegt, bevor es gestreut wird. Kurzer MFP = Licht streut nah am Eintrittspunkt (dunkle Materialien). Langer MFP = Licht streut weit (helle, transluzente Materialien wie Milch).
SSS-Parameter in modernen Renderern
Radius (Scatter Radius / Scale): Kontrolliert, wie weit das Licht unter der Oberfläche streut. Größerer Wert = mehr „Durchscheinen", weichere Schatten.
Farbe / Scatter Color: Die Streufarbe des Lichts im Material. Für Haut: mehrschichtig – Epidermis streut eher bläulich, Dermis rötlich (durch Blutgefäße). Viele Renderer erlauben mehrere SSS-Schichten.
IOR (Index of Refraction): Beeinflusst, wie stark Licht beim Eindringen in das Material abgelenkt wird.
Subsurface Method / Model: Verschiedene Approximationsalgorithmen:
- Random Walk: Physikalisch korrekteste Methode. Simuliert echte Photon-Diffusion durch das Volumen. Langsamer, aber für komplexe Geometrien (dünne Finger, Ohren im Gegenlicht) korrekt. Standard in modernen Renderern wie Cycles Render Engine (Principled BSDF Random Walk) und Arnold Renderer.
- Christensen-Burley (Empirical): Schnellere Approximation, entwickelt bei Pixar. Gute Qualität für dickes, kompaktes Gewebe; weniger korrekt für dünne Geometrie.
- BSSRDF (Dipole/Multipole): Ältere Näherungen (Jensen, 2001); heute meistens durch Random Walk ersetzt.
Mehrschichtige Haut-Shader
Professionelles Character-Rendering (wie in RenderMan) nutzt mehrschichtige SSS-Modelle:
- Epidermis (oberste Schicht): Dünn, wenig SSS; beeinflusst Farbton-Variation (Muttermale, Rötungen).
- Dermis: Dicke Schicht mit starkem SSS; enthält Blutgefäße (rötlich).
- Hypodermis / Fett: Tiefstes SSS; macht dicke Körperstellen (Wangen, Ohrläppchen) transluzenter.
Shader wie Arnolds Standard Surface und Cycles' Principled BSDF haben integrierte Multi-Layer-SSS-Unterstützung über subsurface_scale, subsurface_radius (RGB-Vektor) und subsurface_method-Parameter.
SSS in verschiedenen Renderern
[Cycles Render Engine](/wiki/animation-vfx/render-engines/cycles-render-engine/): Principled BSDF mit Subsurface Weight (0–1), Subsurface Radius (RGB), Subsurface Scale und Subsurface IOR. „Random Walk" als Methode für beste Qualität.
[Arnold Renderer](/wiki/animation-vfx/render-engines/arnold-renderer/): Standard Surface hat subsurface_weight, subsurface_radius, subsurface_scale und subsurface_type (randomwalk vs. randomwalk_v2 vs. empirical). Arnolds Random Walk SSS gilt als Referenz für Character-Rendering.
[V-Ray Renderer](/wiki/animation-vfx/render-engines/v-ray-renderer/): VRayMtl hat sss_enabled mit Scatter Radius und verschiedenen Preset-Materialien. VRaySkin-Material für spezialisiertes Haut-Shading.
[Corona Renderer](/wiki/animation-vfx/render-engines/corona-renderer/): Corona Physical Material mit sss_color, sss_radius und sss_scatter_radius. Sehr gute Konvergenz für Innenarchitektur-Szenen mit Kerzen und Lampenschirmen.
[RenderMan](/wiki/animation-vfx/render-engines/renderman/): PxrSurface mit mehrstufigem SSS (diffuseDoubleSided, singlescatter, multiscatter). Einer der ausgefeiltesten SSS-Shader für Film-Character-Rendering.
SSS und Licht
SSS verändert, wie Licht um Geometrie-Kanten scheint:
- Backlit Ohr: Im Gegenlicht leuchtet ein Ohr rötlich durch – wegen SSS in der dünnen Knorpelstruktur.
- Kerze: Hinter einer Hand gehaltenem Kerzenlicht sieht man rötliches Glühen.
- Finger im Sonnenlicht: An den Fingern kann man Blutgefäße durchscheinen sehen.
Diese Effekte entstehen nur mit korrekt konfiguriertem SSS. Der backlight-Kanal mancher Renderer kontrolliert explizit das Durchscheinen (Translucency) von der Rückseite.
Unterschied zwischen SSS und Transluzenz
Transluzenz (Transmission/Diffuse Transmission): Licht geht direkt durch ein Material (wie bei dünnem Papier oder Vorhängen). Der Lichtaustritt passiert an der gegenüberliegenden Seite. In PBR-Shading (Physically Based Rendering)-Systemen über transmission_weight oder alpha gesteuert.
SSS: Licht streut zufällig im Material; Ein- und Austrittspunkt sind nah beieinander, aber nicht identisch. Typisch für dicke, aber leicht durchscheinende Materialien.
Viele Shader bieten beide Features; für dünnes Papier ist Transluzenz ausreichend; für Haut und Wachs ist echtes SSS notwendig.
Beispiele
- Film-Character-Rendering: Golum (Weta Digital, 2001–2003) war eine der ersten fotorealistischen digitalen Figuren mit korrektem SSS für die glatze, wächserne Haut.
- VFX-Charaktere: Thanos in „Avengers: Infinity War" (2018) nutzte Arnolds Random Walk SSS für Hautdialoge.
- Architektur-Visuslisierung: Kerzenlicht in Innenräumen – SSS macht Kerzen realistisch; Corona Renderer ist bekannt für exzellentes Kerzen-SSS.
In der Praxis
Für Haut-Shader-Einstellungen in Cycles Render Engine Principled BSDF:
- Subsurface Weight: 0.2–0.5 (nicht zu hoch, sonst sieht Haut wächsern aus)
- Subsurface Radius RGB: (1.0, 0.2, 0.1) – rot dominant, wenig grün/blau
- Subsurface Scale: 0.1–0.3 (abhängig von Modelgröße in der Szene)
- Methode: Random Walk für beste Qualität
Vergleich & Abgrenzung
SSS ist teurer als reine diffuse Shading. In EEVEE Render Engine ist SSS eine vereinfachte Approximation (Screenspace SSS); für fotorealistisches Character-Rendering braucht man einen Path Tracer.
Häufige Fragen (FAQ)
Warum sieht meine Haut immer noch plastikähnlich aus, obwohl ich SSS aktiviert habe? Mögliche Ursachen: Scatter Radius zu klein, Scatter Scale zu klein (Licht streut kaum), oder die Base Color ist zu dunkel/zu gesättigt. Referenzfotos von echter Haut im gleichen Licht vergleichen.
Kann ich SSS ohne Volumenshader nutzen? Ja – alle gängigen SSS-Implementierungen sind Oberflächenshader-Features, keine echten Volumenshader. Sie approximieren Volumendiffusion, ohne einen separaten Volumengitter zu benötigen.
Wie unterscheidet sich SSS von echtem Volume Rendering? Echtes Volume Rendering (Nebel, Rauch, Haarvolumen) simuliert Licht in einem 3D-Volumen. SSS ist eine spezifische Approximation für dichte Materialien mit definierter Oberfläche.
Verwandte Einträge
- PBR-Shading (Physically Based Rendering)
- Cycles Render Engine
- Arnold Renderer
- Render-Engine Grundlagen
- Global Illumination
- Sampling und Denoising
Weiterführend
- Jensen, Henrik Wann u. a.: „A Practical Model for Subsurface Light Transport". SIGGRAPH 2001, S. 511–518.
- Christensen, Per / Burley, Brent: „Approximate Reflectance Profiles for Efficient Subsurface Scattering". Pixar Technical Memo 15-04, 2015.
- d'Eon, Eugene: „A Better Dipole". Technical Report, 2012.
- Habel, Ralf u. a.: „Photon Beam Diffusion: A Hybrid Monte Carlo Method for Subsurface Scattering". Eurographics Symposium on Rendering 2013.
