Metallic-Roughness ist der heute dominante PBR-Workflow, der Oberflächen durch drei Kernkanäle beschreibt – Base Color, Metallic und Roughness – und in den meisten modernen Game-Engines und Renderern als Standard gilt.
Was ist der Metallic-Roughness Workflow?
Der Metallic-Roughness-Workflow (MR-Workflow) ist ein Teilbereich des PBR-Systems, der auf der Disney-PBR-Forschung (Burley, 2012) basiert und von Epic Games für die Unreal Engine 4 (2012–2014) popularisiert wurde. Er ist heute der De-facto-Standard in Game-Engines, WebGL, glTF und vielen modernen Renderern.
Der MR-Workflow definiert Materialien über drei Hauptkanäle:
- Base Color – Grundfarbe
- Metallic – Metallizität (0 = Nichtmetall, 1 = Metall)
- Roughness – Oberflächenrauheit (0 = Spiegel, 1 = vollständig diffus)
Diese drei Kanäle, kombiniert mit Normal Map, AO und Emissive, beschreiben vollständig das Reflexionsverhalten einer Oberfläche für alle Lichtsituationen.
Erklärung
Die drei Kernkanäle im Detail
Base Color
- Für dielektrische (nichtmetallische) Materialien: diffuse Albedo-Farbe
- Für metallische Materialien: Fresnel-Reflexionsfarbe (wie Kupfer = rötlich, Gold = goldgelb)
- Keine Schatten oder Glanzlichter enthalten
- Farbtiefe: 8 Bit pro Kanal (sRGB), bei Film: 16-Bit/EXR
- Typische dielektrische Werte: Helligkeit zwischen 30–240 (nicht zu dunkel, nicht zu hell in linearem Farbraum)
Metallic
- Graustufenkanal: 0 = vollständig dielektrisch, 1 = vollständig metallisch
- In der Realität oft binär: entweder Metall oder Nichtmetall, kaum Zwischenwerte
- Ausnahmen: Übergangsbereiche (Rost auf Metall: niedriger Metallic-Wert, da Rost dielektrisch ist)
- Speichertipp: Metallic in einem Kanal eines RGB-Bildes mit Roughness und AO packen (ORM)
Roughness
- Beschreibt Mikro-Oberflächenrauheit auf der nanometerischen Skala
- 0: Perfekter Spiegel (Reflexion scharf und klein)
- 1: Vollständig diffus (Reflexion extrem weit gestreut)
- Linear gespeichert (kein sRGB-Gamma)
- Konzept: Roughness ist eigentlich die statistische Standardabweichung der Mikro-Normalen vom makroskopischen Normalenvektor
Physikalische Grundlagen: Energieerhaltung und Fresnel
Der MR-Workflow erzwingt Energieerhaltung: Die Summe aus diffus reflektiertem und spekulär reflektiertem Licht übersteigt nie die einfallende Lichtmenge.
Fresnel-Effekt: Alle realen Materialien reflektieren bei flachem Winkel (Streiflichtsicht) mehr als bei direkter Betrachtung. Dieser Fresnel-Effekt wird im MR-Shader automatisch berechnet:
- Dielektrika: F0 (Fresnel bei 0°) ≈ 0,04 (4% Reflexion)
- Metalle: F0 bestimmt durch Base Color (0,5–1,0)
Typische Materialwerte
| Material | Metallic | Roughness | Base Color |
|---|---|---|---|
| Polierter Stahl | 1.0 | 0.05–0.15 | Dunkelgrau |
| Gebürstetes Aluminium | 1.0 | 0.3–0.5 | Mittelhelles Grau |
| Rohe Holzoberfläche | 0.0 | 0.7–0.9 | Holzbraun |
| Weißer Marmor | 0.0 | 0.1–0.3 | Weiß-Grau |
| Trockener Asphalt | 0.0 | 0.8–0.95 | Dunkelgrau |
| Nasses Pflaster | 0.0 | 0.05–0.2 | Dunkelgrau |
| Kupfer (poliert) | 1.0 | 0.05 | Rötlich-Orange |
| Gold | 1.0 | 0.1–0.2 | Gelbgold |
| Rost | 0.0 | 0.7–0.9 | Orangebraun |
| Schwarze Gummidichtung | 0.0 | 0.8–1.0 | Sehr Dunkelgrau |
ORM-Textur-Packing
In der Praxis wird oft eine ORM-Textur erstellt: Ein einzelnes RGB-Bild enthält:
- R-Kanal: Ambient Occlusion
- G-Kanal: Roughness
- B-Kanal: Metallic
Vorteil: 3 Graustufen-Maps in einem Bild → Speicherplatz- und Textur-Sample-Ersparnis in der Engine.
In Substance Painter Exportpresets (z.B. Unreal Engine) wird ORM automatisch erzeugt.
MR-Workflow in verschiedenen Engines
Unreal Engine 4/5: MR-Standard. Normal-Map im DirectX-Format (Y invertiert). ORM-Textur als Standard-Input.
Unity (HDRP): MR-basiert. Unity-spezifisches Mask Map Format: RGBA (Metallic, AO, Detail Mask, Smoothness=invertierte Roughness).
glTF 2.0: MR-Standard nach Khronos-Spezifikation. Direkt vom Browser-Renderer und AR-Frameworks unterstützt.
Blender Cycles/EEVEE: MR-basiert via Principled BSDF-Shader. Roughness und Metallic direkt angebunden.
Arnold: Unterstützt MR über Standard Surface Shader (seit Version 5.0).
Beispiele
Erstellungsprozess Rostiges Eisen in Substance Painter:
- Fill Layer: Metallic = 1.0, Roughness = 0.2 (blankes Metall als Basis)
- Layer: Rost-Smart-Material über Kanten (Metallic ≈ 0, Roughness ≈ 0.9)
- Layer: Schmutz-Akkumulation in Vertiefungen (Roughness +0.3 über AO)
- Paint Layer: Kratzer (Metallic = 1 durch Rost hindurch sichtbar, Roughness niedrig)
Fehlervermeidung:
- Metallische Materialien nie mit diffuser Farbe im Base-Color-Kanal (Fehler: Chromgelb statt chromes Metall mit Gelbton in Base Color)
- Emissive-Maps nie in sRGB statt Linear speichern (Fehler: falsche Intensität)
In der Praxis
Der MR-Workflow ist so verbreitet, dass er heute in den meisten 3D-Anwendungen voreingestellt ist. Für Artists bedeutet das:
- Standard-Workflow in Substance Painter (Standardmodus beim neuen Projekt)
- Automatisch korrekt durch alle gängigen Export-Presets
- Lernaufwand: Einmalig die Grundprinzipien verstehen, dann intuitiv anwendbar
Die häufigste Fehlerquelle in der Praxis: Texturkanäle in falschem Farbraum (sRGB vs. Linear) speichern oder importieren. Das verursacht falsche Reflexionswerte, besonders bei Roughness und Metallic.
Vergleich & Abgrenzung
MR vs. Specular-Glossiness: SG-Workflow ist der ältere Standard (V-Ray, ältere Studios). Hauptunterschied: SG erlaubt RGB-Specular-Farbe, MR vereinfacht dies auf Metallic. MR ist physikalisch korrekter und weniger fehleranfällig für nicht-PBR-Artists.
MR vs. Oren-Nayar / Blinn-Phong: Klassische Shading-Modelle ohne Energieerhaltung oder Fresnel. Historisch in älteren Spielen (PS2/3-Ära). Heute nur noch in Legacy-Projekten relevant.
Häufige Fragen (FAQ)
Warum hat Glas kein Metallic = 1? Glas ist dielektrisch (Metallic = 0), aber mit sehr niedriger Roughness und einem speziellen Transparenz/Brechungsindex-Shader. Glas reflektiert zwar stark (Fresnel), ist aber kein Metall.
Kann Metallic Werte zwischen 0 und 1 haben? Physikalisch korrekt sind 0 oder 1. Werte dazwischen sind technisch möglich aber physikalisch nicht plausibel, werden aber für künstlerische Effekte oder Rost-Übergänge genutzt.
Was bedeutet "F0 = 0.04 für Dielektrika"? F0 ist die Fresnel-Reflexion bei 0° Einfallswinkel. Für die meisten nichtmetallischen Materialien liegt dieser Wert bei ~4%, was dem Metallic = 0-Wert im MR-Shader entspricht.
Verwandte Einträge
- PBR-Texturing – Grundlagen – Überblick über alle PBR-Konzepte
- PBR: Specular-Glossiness Workflow – Der alternative SG-Workflow
- Substance Painter – Einführung – Implementierung in SP
- Textur-Export für Game & Film in Substance Painter – MR-Export für verschiedene Engines
Weiterführend
- Burley, B. (2012): Physically Based Shading at Disney. SIGGRAPH 2012.
- Karis, B. (2013): Real Shading in Unreal Engine 4. SIGGRAPH 2013, Epic Games.
- Khronos Group (2023): GLTF 2.0 Specification – Metallic Roughness. khronos.org
- NVIDIA (2023): PBR Material Guidelines – MDL Handbook. developer.nvidia.com
- Adobe (2023): PBR Material Validation in Substance 3D Painter. Adobe Substance 3D Documentation.
