Dieses Dokument soll Richtlinien und Best Practices für die Arbeit mit dem System der physikalisch basierten Materialien von Unreal Engine bereitstellen. Es wird davon ausgegangen, dass Sie mit dem Materialerstellungsprozess in Unreal vertraut sind. Wenn Materialien in Unreal für Sie völlig neu sind, ziehen Sie es vielleicht vor, mit der Seite Essential Material Concepts zu beginnen.
Diese Seite konzentriert sich nur auf die Materialattribute, die in direktem Zusammenhang mit dem physikalisch basierten Schattierungs-Workflow stehen. Eine vollständige Aufschlüsselung aller Eingaben auf dem Hauptmaterialknoten finden Sie auf der Seite Material Inputs.
Was bedeutet physikalisch basiert?
Physically Based Rendering (PBR) bedeutet, dass Oberflächen dem Verhalten des Lichts in der realen Welt entsprechen, im Gegensatz zu dem, was wir intuitiv denken. Materialien, die den PBR-Prinzipien entsprechen, sind genauer und sehen in der Regel natürlicher aus als ein Schattierungs-Workflow, der sich bei der Einstellung von Parametern vollständig auf die Intuition des Künstlers verlässt.
Physikalisch basierte Materialien funktionieren in allen Beleuchtungsumgebungen gleich gut. Darüber hinaus können Materialwerte weniger komplex und voneinander abhängig sein, was zu einem benutzerfreundlicheren Arbeitsablauf bei der Materialerstellung führt. Diese Vorteile gelten sogar für nicht-fotorealistisches Rendering, wie in Filmen von Pixar [4] and Disney [3] deutlich wird.
Einen detaillierten technischen Einblick in das physikalisch basierte Material- und Schattierungsmodell von Unreal Engine finden Sie in dieser SIGGRAPH-Präsentation 2.
PBR-Materialattribute
Dies sind die Materialattribute, die in direktem Zusammenhang mit dem physikalisch basierten Aspekt von Unwirklichen Materialien stehen.
Alle diese Inputs sind so ausgelegt, dass sie Werte zwischen 0 und 1 akzeptieren. Im Fall von Basisfarbe bedeutet dies ein Farb- oder Texturmuster mit RGB-Werten, die zwischen 0 und 1 liegen.
Physikalisch basierte Werte können aus realen Materialien gemessen werden. Einige Beispiele sind unten aufgeführt.
Basisfarbe
Basisfarbe definiert die Gesamtfarbe des Materials. Der Input Basisfarbe akzeptiert einen Vector3 (RGB)-Wert, bei dem jeder Kanal automatisch zwischen 0 und 1 geklemmt wird.
Wenn es aus der realen Welt genommen wird, ist dies die Farbe, wenn es mit einem Polarisationsfilter fotografiert wird (Polarisation entfernt das Spiegeln von Nichtmetallen, wenn es ausgerichtet ist).
Gemessene BaseColor-Werte für Nichtmetalle (nur Intensität):
| Material | BaseColor-Intensität |
|---|---|
| Holzkohle | 0,02 |
| Frischer Asphalt | 0,02 |
| Abgenutzter Asphalt | 0,08 |
| Nackter Boden | 0,13 |
| Grünes Gras | 0,21 |
| Wüstensand | 0,36 |
| Frischbeton | 0,51 |
| Ozean-Eis | 0,56 |
| Neuschnee | 0,81 |
Gemessene Grundfarben für Metalle:
| Material | Grundfarbe (R, G, B) |
|---|---|
| Eisen | (0,560, 0,570, 0,580) |
| Silber | (0,972, 0,960, 0,915) |
| Aluminium | (0,913, 0,921, 0,925) |
| Gold | (1,000, 0,766, 0,336) |
| Kupfer | (0,955, 0,637, 0,538) |
| Chrom | (0,550, 0,556, 0,554) |
| Nickel | (0,660, 0,609, 0,526) |
| Titan | (0,542, 0,497, 0,449) |
| Kobalt | (0,662, 0,655, 0,634) |
| Platin | (0,672, 0,637, 0,585) |
Rauheit
Der Input Rauheit steuert, wie rau oder glatt die Oberfläche eines Materials ist. Im Material manifestiert sich dies darin, wie scharfe oder verschwommene Reflexionen auf dem Material erscheinen.
Raue Materialien streuen reflektiertes Licht in mehr Richtungen als glatte Materialien, was zu diffusen, manchmal subtilen Reflexionen führt. Glatte Oberflächen reflektieren das Licht gleichmäßiger, was zu klaren, fokussierten Reflexionen oder Glanzlichtern führt.
Eine Rauheit von 0 (glatt) ergibt eine Spiegelung.
- Eine Rauheit von 1 (rau) ergibt eine diffuse oder matte Oberfläche.

Rauheitswerte von 0 bis 1. Oberseite nicht aus Metall, Unterseite aus Metall.

Rauheitswerte von 0 bis 1.
Rauheits-Mapping
Rauheit wird häufig mithilfe einer Graustufentextur auf Objekte abgebildet, um einer Oberfläche physikalische Variationen hinzuzufügen. Dunkle Bereiche auf einer Rauheitskarte erscheinen spiegelbildlich auf dem Material, während helle Bereiche rau sind und weniger reflektierend erscheinen.
Das folgende Video zeigt, wie der Rauheitswert von 0 auf 1 ansteigt, wobei eine Perlin-Textur die Verteilung der hellen (rauen) und dunklen (glatten) Werte steuert. Bei 0 ist die Materialvorschau komplett spiegelverkehrt. Bei 1 ist das Material perfekt matt. Zwischenwerte sind interessanter, da Teile der Oberfläche glatt und Teile rau erscheinen.
Rauheitskarten werden häufig verwendet, um Materialien wie Kunststoff und Metall Schrammen, Flecken oder andere Unvollkommenheiten hinzuzufügen.
Rauheit vs. Spiegelung
Das Zusammenspiel zwischen Rauheit und Spiegelung ist ein wichtiger Punkt, den Sie verstehen sollten, insbesondere wenn Sie in Unreal Engine gearbeitet haben, bevor der PBR-Workflow eingeführt wurde.
Spiegelung bezieht sich auf die Menge an specular light, die von einer Oberfläche reflektiert wird. Dieser Wert ist dem Materialtyp eigen, und normalerweise ist der Standardwert von 0,5 genau. Der Input Spiegelung wird nicht für Reflexions-/Spiegelungskarten verwendet oder um Oberflächenvariationen hinzuzufügen. Diese sollten in der Rauheitskarte behandelt werden.
Metallic
Der Input Metallic akzeptiert einen Wert zwischen 0 und 1 und definiert, ob sich Ihr Material als Metall oder Nichtmetall verhält.
In den meisten Fällen sollten Sie Metallic als binäre Eigenschaft in Unreal Engine behandeln. Bei reinen Oberflächen wie reinem Metall, reinem Stein, reinem Kunststoff usw. sollten Sie „Metallic" auf entweder 0 oder 1 setzen, nicht auf irgendetwas dazwischen. Beim Erstellen von Hybridoberflächen wie korrodierten, staubigen oder rostigen Metallen werden Sie möglicherweise feststellen, dass Sie einen Wert zwischen 0 und 1 benötigen.
- Nichtmetalle haben einen Metallwert von 0. Dies ist der Standardwert. Metalle haben einen Metallwert von 1.
Metallwerte 0 bis 1.
Vielleicht zögern Sie zunächst, ein Material vollständig metallisch zu machen. Widerstehen Sie dem Impuls, Teilwerte zu verwenden, es sei denn, Sie haben einen guten Grund.
Dieses Beispiel zeigt, wie sich eine Oberfläche ändert, wenn Metallic auf einem Material mit relativ geringer Rauheit von 0 auf 1 erhöht wird.

Metallwerte von 0 bis 1.
Metallic-Mapping
Metalle und Nichtmetalle kommen oft im selben Material vor. Betrachten Sie eine Metallplatte mit einer Farbschicht, die einen Teil oder das gesamte Metall bedeckt.
Farbe ist ein Nichtmetall, daher sollte der Metallic-Wert in allen von Farbe bedeckten Bereichen 0 sein. Überall dort, wo die Metallplatte sichtbar ist, sollte der Metallic-Wert 1 sein.
Dies sollte mit einer Schwarz-Weiß-Maske gehandhabt werden, die an die Metallic-Eingabe übergeben wird. Farbe vermischt sich nicht mit Metall, sie sitzt auf dem Metall. Ihre Metallic-Karte sollte keine Graustufen-Zwischenwerte enthalten, sondern nur Schwarz und Weiß. Sie können auch Materialschichten verwenden, um ähnliche Ergebnisse zu erzielen.
Spiegelnd
Der Input Spiegelung nimmt einen Wert zwischen 0 und 1 an und steuert, wie viel spiegelndes Licht die Oberfläche reflektiert.
- Ein Spiegelungswert von 0 ist vollständig entspiegelt.
- Ein Spiegelungswert von 1 ist vollständig reflektierend.
Unreal Engine verwendet eine Standard-Spiegelung von 0,5, was ungefähr 4 % Spiegelreflexion entspricht. Dieser Wert ist für die überwiegende Mehrheit der Materialien genau.
Bei sehr diffusen Materialien neigen Sie möglicherweise dazu, dies auf Null zu setzen. Halten Sie stand! Alle Materialien sind spiegelnd, siehe diesen Beitrag für Beispiele [5].. Der richtige Weg, um sehr diffuse Materialien herzustellen, ist die Verwendung eines hohen Rauheitswerts.
Hohlraumkarten
Ein Grund, Spiegelung zu modifizieren, ist das Hinzufügen von Mikrookklusion oder kleinräumiger Schattierung, z. B. von Rissen, die in der Normal-Map dargestellt sind. Diese werden manchmal als Hohlräume bezeichnet. Geometrie mit kleinem Maßstab, insbesondere Details, die nur in High Poly vorhanden und in die normale Karte eingebrannt sind, werden von den Echtzeitschatten des Renderers nicht erfasst.
Um diese Schattenbildung zu erfassen, können Sie eine Kavitätskarte erstellen, bei der es sich normalerweise um eine AO-Karte mit sehr kurzer Spurweite handelt. Dies wird vor der Ausgabe mit der endgültigen Basisfarbe multipliziert und mit 0,5 (Spiegelungsstandard) als Glanzausgabe multipliziert.
Zur Verdeutlichung: BaseColor = CavityOldBaseColor, Specular = Cavity0.5.
Für fortgeschrittene Benutzer kann dies dazu verwendet werden, um den Brechungsindex (IOR) zu steuern. Wir haben festgestellt, dass dies für 99 % der Materialien nicht erforderlich ist. Nachstehend sind Spiegelungswerte basierend auf dem gemessenen IOR aufgelistet.
Gemessene Spiegelungswerte:
| Stoff | Spiegelung |
|---|---|
| Glas | 0,5 |
| Kunststoff | 0,5 |
| Quarz | 0,570 |
| Eis | 0,224 |
| Wasser | 0,255 |
| Milch | 0,277 |
| Haut | 0,35 |

Spiegelwerte von 0 bis 1
Beispiel gemessene Materialien. Oberseite: Holzkohle, frischer Beton, abgenutzter Asphalt. Unterseite: Kupfer, Eisen, Gold, Aluminium, Silber, Nickel, Titan
Verweise
1. Lagarde, Feeding a physically based shading model
2. Karis, Real Shading in Unreal Engine 4
3. Burley, Physically-Based Shading at Disney
4. Smits, Reflection Model Design for WALL-E and Up
5. Hable, Everything is Shiny