Das Verständnis, wie Daten im Material Editor dargestellt und bearbeitet werden, ist eines der Hauptkonzepte bei der Materialerstellung in Unreal Engine. Die Eingaben auf dem Main Material Node, die die physikalischen Attribute eines Materials definieren, werden jeweils so programmiert, dass sie eine bestimmte Art von Daten akzeptieren. In ähnlicher Weise werden viele der Materialausdrucksknoten, die zum Erstellen von Materialien verwendet werden, nicht kompiliert, es sei denn, sie erhalten eine bestimmte Art von Daten zu ihren Eingaben.
Diese Seite bietet einen Überblick über die vier im Material-Editor verfügbaren Datentypen und Beispiele für ihre häufige Verwendung.
Float-Datentypen
In der Computergrafik ist ein float ein Datentyp, der einen einzelnen numerischen Wert, positiv oder negativ, speichert. Float ist die Abkürzung für Fließkomma, was bedeutet, dass die Zahl eine Dezimalstelle enthält und keine ganze Zahl (oder Ganzzahl) sein muss. Beispiele für Float-Werte können 1,0, -0,5 oder 2,0 sein.
Letztendlich sind alle Datentypen im Material-Editor Variationen der Float-Variablen. Sie unterscheiden sich in der Menge der Werte, die sie speichern. Während ein Float eine einzelne Zahl darstellt, speichert ein Float2 zwei diskrete Gleitkommawerte. Zum Beispiel: (1,0, 0,5).
In der folgenden Tabelle sind die vier im Material-Editor verfügbaren Datentypen aufgeschlüsselt.
| Datentyp | Materialausdruck/-ausdrücke(e) | Datenstruktur | Allgemeine Anwendungen |
|---|---|---|---|
| Float | Konstante, Skalarparameter | (r) | Metallisch, Rauheit, Rechenoperationen |
| Float2 | Constant2Vector | (r, g) | UV- oder XY-Koordinaten, Maßstab |
| Float3 | Constant3Vector | (r, g, b) | Farbe (r, g, b) oder 3D-Koordinaten (x, y, z) |
| Float4 | Constant4Vector, Vektorparameter, Texturen | (r, g, b, a) | Farbe mit Alphakanal, Texturen (r, g, b, a) |
Float
Wie oben beschrieben, speichert ein float einen einzelnen Gleitkommawert. Er kann positiv oder negativ sein und enthält eine Dezimalstelle. Es gibt zwei Materialausdrücke, die Sie zum Definieren eines Floats verwenden können.
Konstanter Materialausdruck
Ein Constant Material Expression-Knoten speichert einen einzelnen konstanten Gleitkommawert. Da es sich um eine Konstante handelt, ändert sich dieser Wert nicht, nachdem das Material kompiliert wurde. Das folgende Bild zeigt einen konstanten Knoten, der einen Wert von 1,0 enthält.
Skalarer Parameter
Ein Scalar Parameter speichert auch einen Float. Im Gegensatz zu einer Konstante wird der Skalare Parameter auch zu einer benannten Variablen, die Sie nach dem Kompilieren des Materials oder sogar zur Laufzeit in einer Materialinstanz ändern können. Das folgende Bild zeigt einen Skalaren Parameter mit dem Namen Roughness und einem Standardwert von 0,6. Sie könnten dieses zum Definieren des Material-Rauheitsattributs verwenden, während Sie Künstlern die Möglichkeit geben, den Wert in einer Materialinstanz zu überschreiben.
Weitere Informationen darüber, wann und wie Skalare Parameter anstelle von Konstanten verwendet werden, finden Sie in der Dokumentation Instanzierte Materialien.
Beispiele
Bestimmte Eingaben auf dem Main Material Node werden durch ein Float definiert. Beispielsweise akzeptieren die inputs Metallisch, Spiegelnd und Rauheit alle einen Gleitkommawert zwischen 0 und 1. Daher können Sie einen konstanten Materialausdruck oder einen skalaren Parameter direkt an den Hauptmaterialknoten übergeben, um diese Attribute zu definieren.
Konstanten und skalare Parameter werden oft verwendet, um die Größe eines Effekts zu steuern. Unten wird ein skalarer Parameter namens Emissionsstärke mit einer Volltonfarbe multipliziert und an die Eingabe Emissionsfarbe übergeben. Wenn Sie den Wert im Parameter Emissionsleistung ändern, wird die Emissionsleistung heller oder dunkler.
Float2
Ein Float2 speichert zwei numerische Werte. Zum Beispiel: (2.0, 3.0).
Im Material-Editor wird der Materialausdruck Constant2Vector verwendet, um ein Float2 zu definieren. Unten wird ein Constant2Vector mit Werten von 2,0 und 3,0 in jedem seiner zwei Kanäle gezeigt.
Constant2Vector
Der Constant2Vector ist immer dann nützlich, wenn Sie ein Attribut definieren oder ändern müssen, das Zweikanaldaten erfordert. Im Detailbereich sind die beiden Werte mit R und G gekennzeichnet und beziehen sich auf die roten und grünen Kanäle in RGB-Farbe, aber das ist nur eine mögliche Verwendung. Koordinaten (UV, XY) und Skalierung (Breite, Höhe) sind weitere Attribute, die Sie mit einem Constant2Vector definieren könnten.
Im nachstehenden Beispiel wird ein Constant2Vector zu einem Knoten Texturkoordinaten hinzugefügt, um die Position der Textur auf einer Ebene zu ändern. Auf der ersten Folie sind die Werte in Constant2Vector (0, 0), sodass die Texturposition unverändert bleibt.

Die Werte in Constant2Vector steuern die Texturposition.
Wenn der R-Wert auf 0,5 geändert wird, verschiebt sich die Textur entlang der horizontalen Achse, da sie zur U-Koordinate der Textur hinzugefügt wird. Dadurch wird die Textur um die linke und rechte Kante der Ebene gewickelt. Wenn der G-Wert auf 0,5 geändert wird, verschiebt sich die Textur vertikal. Das Zentrum der Textur liegt nun an den vier Ecken der Ebene.
Float3
Ein float3 speichert drei numerische Werte. Im Material-Editor definiert der Constant3Vector-Knoten ein Float3.
Constant3Vector
In Unreal Engine wird die Farbe eines Pixels durch drei Werte definiert, die die roten, grünen und blauen Farbkanäle darstellen. Daher gilt die Definition einer Volltonfarbe als eine häufige Verwendung für ein float3.
Wenn Sie auf einen Constant3Vector-Knoten doppelklicken, wird ein Dialogfeld zur Farbauswahl angezeigt, in dem Sie mithilfe des Farbrads oder der Pipette eine Farbe auswählen können. Die Farbauswahl bietet auch Felder zur Eingabe von RGB-, HSV- oder Hex-Werten, wenn Sie eine bestimmte Farbe erstellen müssen. Sie können die Farbauswahl auch starten, indem Sie im Detailbereich auf das Farbfeld klicken.
Ein zweiter Anwendungsfall für ein float3 ist die Definition von (x, y, z)-Koordinaten. Beispielsweise akzeptiert die Eingabe World Position Offset drei Werte, die definieren, um wie viele Einheiten das Material auf der x-, y- und z-Achse im Weltraum versetzt ist.
In den nachstehenden vier Folien werden die Werte in einem Constant3Vector jeweils auf 800 geändert. Sie können sehen, wie sich die Position der Kugel auf der dritten Folie zuerst auf der x-Achse, dann auf der y-Achse, dann auf der z-Achse ändert.

World Position Offset nimmt drei Werte an, um das Material entlang der x-, y- und z-Achse zu versetzen.
Parametrieren eines Constant3Vectors
Sie können einen Constant3Vector parametrisieren, indem Sie mit der rechten Maustaste darauf klicken und In Parameter konvertieren aus dem Kontextmenü auswählen. Dadurch wird der Knoten in einen Vektorparameter umgewandelt. Der Knoten Vektorparameter speichert tatsächlich vier Werte (r, g, b, a), was ihn zu einem Float4 macht.
Jede Eingabe, die ein Float3 erfordert, verwendet jedoch einfach die ersten drei Werte und verwirft den vierten. Beispielsweise wird bei der Eingabe der Grundfarbe ein Float3 akzeptiert. Wenn Sie einen Vektorparameter mit der Grundfarbe verbinden, verwendet er die R-, G- und B-Kanäle und verwirft den vierten Wert (den Alpha-Kanal). Da die Unreal Engine weiß, welcher Kanal zu verwerfen ist, können Sie einen Vektorparameter sicher verwenden, wenn Sie einen Float3 parametrisieren müssen, obwohl der Knoten technisch gesehen ein Float4 ist.
Float4
Ein float4 speichert vier Fließkommawerte. Zum Beispiel: (50,0, 0,0, 100,0, 0,5). Es gibt zwei Materialausdrücke, die häufig zur Definition eines Float4 verwendet werden.
Constant4Vector
Der Constant4Vector speichert vier konstante Werte. Der Constant4Vector wird am häufigsten verwendet, um RGBA-Farben, d. h. Farben mit einem Alphakanal, darzustellen. Wie bei Constant3Vector können Sie auf den Knoten doppelklicken oder im Detailbereich auf das Farbfeld klicken, um auf eine Farbauswahl zuzugreifen.
Vektorparameter
Ein Vektorparameter ist ein parametrisierter Float4. Sie können einen Vektorparameter direkt aus der Palette oder einem Behälter erstellen. Am häufigsten wird ein Vektorparameter für das Erstellen von Farbparametern in einem Material verwendet, die Künstler in Materialinstanzen einfach überschreiben können. Beispielsweise ist das Multiplizieren eines Vektorparameters über einer Textur eine Möglichkeit, eine Farbtonstreuung zu einem Aspekt eines Materials (z. B. Grundfarbe und Emissive) hinzuzufügen.
Neben seiner Nützlichkeit in einem parametrisierten Material-Workflow hat der Vektorparameter einen weiteren Vorteil. Im Gegensatz zu allen vorherigen Beispielen auf dieser Seite ist jeder einzelne Datenkanal innerhalb eines Vektorparameters über die fünf Ausgangspins auf der rechten Seite des Knotens zugänglich. Wie oben bezeichnet, sind dies:
- RGBA - Gibt alle Werte in float4 aus. Im obigen Beispiel: (0,0, 1,0, 0,5, 0,0).
- R — Gibt nur den Wert im Kanal R aus.
- G — Gibt nur den Wert im Kanal G aus.
- B — Gibt nur Wert nur im Kanal B aus.
- A — Gibt nur den Wert im Kanal A aus.
Dies betont einen wichtigen Aspekt der Material-Erstellung. Letztendlich sind die Informationen, die durch ein Materialdiagramm fließen, nur Gleitkommawerte, die auf unterschiedliche Weise verpackt und dargestellt werden. Auch wenn die Kanäle eines Vektorparameters im Detailbereich mit RGBA gekennzeichnet sind, bedeutet dies nicht, dass sie in Ihrem Material so verwendet werden müssen.
Sie könnten einen Vektorparameter über die Darstellung der Farbe hinaus verwenden, um vier diskrete, aber verwandte Werte zu parametrisieren. Eine solche Verwendung des Knotens erfolgt im übergeordneten Material von Megascans, wo ein Vektorparameter verwendet wird, um die UV-Kachelung und den Materialversatz zu parametrisieren.
Beachten Sie, dass die RGBA-Kanäle in diesem Beispiel in Tiling X, Tiling Y, Offset X und Offset Y umbenannt wurden. Sie können die Kanäle eines Vektorparameters im Detailbereich unter Parameteranpassung > Kanalnamen umbenennen. Diese Namen sind im Materialexemplar-Editor sichtbar, wenn ein Künstler Parameterwerte überschreibt.
Lesen Sie hier mehr über den Knoten Vector Parameter und erfahren Sie auf diesen Seiten mehr über Material parameterization.
Weiterführende Literatur
Die vier auf dieser Seite vorgestellten Datentypen bilden die Grundlage aller Informationen, die durch einen Materialgraphen wandern. Es ist wichtig zu verstehen, dass Datentypen nicht unbedingt unveränderlich sind. Beispielsweise können Sie zwei Floats zu einem Float2 kombinieren. Auf ähnliche Weise können Sie einen einzelnen Float aus einem größeren Datentyp extrahieren oder isolieren.
Hier finden Sie weitere Informationen zum Nachlesen über die Bearbeitung von Datentypen und Regeln zur Durchführung von Arithmetik in einem Materialdiagramm: Material Data Manipulation and Arithmetic.