Das Materialsystem in Unreal Engine bietet einen knotenbasierten Material-Editor, mit dem du Texturen, mathematische Operationen, Parameter und Ausdrücke verbinden kannst, um das Aussehen einer Oberfläche zu erstellen. Das Materialsystem optimiert und rendert Materialien in Echtzeit.
Für Maya-Nutzer ist dieser Workflow dem Erstellen von Materialien in Hypershade am ähnlichsten, weist aber einige grundlegende Unterschiede auf.
Die Materialien in Unreal Engine werden mit folgenden Mitteln erstellt:
Ein knotenbasierter Material-Editor, der für Echtzeit-Vorschau und Workflows optimiert ist.
Physikbasiertes Rendering (PBR) betont den Realismus durch definierte Eigenschaften wie Basisfarbe, Metallisch, Rauheit, Glänzend und Normal-Maps.
Echtzeit-Feedback bei Materialänderungen im Vorschau-Viewport mit Echtzeit-Beleuchtung und -Reflexionen.
Parametergesteuerte Workflows mit Material-Instanzen, um Anpassungen an Materialien durch Überschreibungen vorzunehmen, ohne das Parent-Material neu kompilieren zu müssen.
Die definierenden Attribute eines Materials
Die definierenden Attribute eines Materials, die in Unreal Engine gerendert werden und auf Beleuchtung und Oberflächen reagieren, werden durch seine Eigenschaften, Material-Inputs und die Materialdiagrammlogik bestimmt.
Materialeigenschaften und Material-Inputs
Im Material-Editor richtest du im Details-Panel die definierenden Attribute eines Materials ein. Es gibt drei grundlegende Eigenschaften, die du für den Typ des Materials, das du herstellst, berücksichtigen musst. Diese Eigenschaften definieren die Inputs am Hauptmaterialknoten, den du verwendest, um das Aussehen deines Materials im Materialdiagramm einzurichten.
Die Material-Domain definiert, wofür das Material in deinem Projekt eingesetzt werden kann. Beispielsweise eine 3D-Oberfläche, Benutzeroberfläche, Nachbearbeitung, Lichtfunktion oder Aufkleber.
Der Überblendmodus definiert, wie das Material mit den umgebenden farbigen Hintergrundpixeln vermischt wird. Das kann beispielsweise undurchsichtig, durchscheinend, maskiert sein, zusammen mit anderen Überblendoptionen.
Das Schattierungsmodell definiert, wie das Material mit Licht interagiert und bestimmt das visuelle Erscheinungsbild und das Beleuchtungsverhalten von Oberflächen. Beispielsweise verwenden die Schattierungsmodelle „Stoff“ und „Haar“ im Vergleich zum Schattierungsmodell „Standardmäßig beleuchtet“ andere Material-Inputs, um einen realistischen Oberflächeneindruck zu erzielen. Einige Schattierungsmodelle fügen ihren Materialien mehr Komplexität und Performancekosten hinzu.
Wenn diese Materialeigenschaften festgelegt sind, kannst du mithilfe der verfügbaren Inputs am Hauptmaterialknoten im Materialdiagramm ein Material erstellen. Die Liste der Inputs wird direkt der Domäne, dem Überblendmodus und dem Schattierungsmodell zugewiesen, die für das Material eingerichtet sind, das du entwickelst. Für die meisten Materialien, die in Unreal Engine erstellt werden, verwendest du Folgendes:
Unten siehst du ein Beispiel der verschiedenen Inputs am Hauptmaterialknoten, wenn nur der Überblendmodus geändert wird, um verschiedene Outputs zu verwenden.
Material-Domain: Oberfläche Überblendmodus: Undurchsichtig Schattierungsmodell: Standardbeleuchtet | Material-Domain: Oberfläche Überblendmodus: Durchscheinend Schattierungsmodell: Standardbeleuchtet | Material-Domain: Oberfläche Überblendmodus: Maskiert Schattierungsmodell: Standardbeleuchtet |
Nachfolgend findest du einige häufig verwendete Input-Namen für die Hypershade-Materialien von Maya und ihr Äquivalent in Unreal Engine. Dies umfasst auch ihren typischen Typ des Quell-Inputs für jeden dieser Inputs in Unreal Engine, wenn die Logik im Materialdiagramm definiert wird.
| Maya Hypershade Material-Inputs | Unreal Engine Material-Inputs | Typischer Quell-Typ | Material-Input-Beschreibung |
|---|---|---|---|
Farbe | Basisfarbe | Textur oder Farbe | Die Hauptstreufarbe einer Oberfläche. |
Reflexionsvermögen | Metallisch | Skalar oder Textur | Definiert, ob die Oberfläche metallisch (1) oder nicht metallisch (0) aussieht. |
Rauheit | Rauheit | Skalar oder Textur | Steuert die Glätte der Oberfläche von glatt (0) bis rau (1). |
Reflexionsvermögen | Glänzend | Skalar oder Textur | Steuert die reflektive Intensität einer nicht-metallischen Oberfläche von nicht reflektiv (0) zu reflektiv (1). |
Bump/Normal | Normal | Normal-Map-Textur | Wendet Oberflächendetails mithilfe von Textur-Maps an. |
Emission /Emissionsfarbe/Glühen | Emissionsfarbe | Farbe oder Textur | Steuert die Intensität der Selbst-Beleuchtung von einer Oberfläche. |
Transparenz/Transluzenz | Opazität | Skalar oder Textur | Steuert, wie durchscheinend die Oberfläche ist, von völlig transparent (0) bis undurchsichtig (1). |
Umgebungsfarbe | Umgebungsverdeckung | Texturen | Steuert die Intensität indirekter Schatten. |
Weitere Informationen und Beispiele zur Verwendung dieser Materialeigenschaften und ihrer Inputs in Materialien findest du in den folgenden Themen:
Materialdiagramm
Das Materialdiagramm ist der knotenbasierte Editor, in dem du Texturen, Ausdrücke, mathematische Operationen und Werte miteinander verbindest, um das Aussehen einer Oberfläche zu definieren. Materialien können so einfach oder komplex sein, wie Sie es zum Definieren einer Oberfläche benötigen.
Die gewöhnlichen Knotentypen, die du verwenden wirst, sind:
Textur-Sample
Dieser Knoten verwendet Textur-Assets wie Farb-Maps und Normal-Maps.
Konstanten
Hierbei handelt es sich um Einzelwertzahlen, die zum Steuern skalarer Eigenschaften nützlich sind, wie etwa Input-Werte an einem linearen Interpolationsknoten oder zum direkten Verbinden mit den Inputs des Hauptmaterialknotens für „Metallisch“, „Rauheit“ oder „Opazität“.
Math-Knoten
Dies sind mathematische Operationen für Hinzufügen, Multiplizieren, Subtrahieren, Dividieren, Lineare Interpolation (Lerp), Potenzieren, Klammern usw.
Hilfsknoten
Dies sind Knoten, die helfen, Logik mit anderen Knoten im Diagramm zu erstellen. Diese umfassen Ausdrücke für Fresnel, Kamera-Vektor, Weltposition, Textur-Koordinaten usw.
Weitere Informationen zur Verwendung von Logik im Materialdiagramm und der allgemeinen Funktionalität findest du in den folgenden Themen:
Zusätzliche Hinweise zu Materialien und Texturen
Nachfolgend findest du einige detaillierte Übersichten zu Themen im Zusammenhang mit der Materialentwicklung in Unreal Engine. Ausführlichere Übersichten zu diesen Konzepten und Anwendungen findest du auf den verknüpften Dokumentationsseiten.
Materialien im Vergleich zu Material-Instanzen
Das Materialsystem von Unreal Engine ist auf Anpassung und Parametrisierung für Echtzeit-Rendering und Beleuchtung ausgelegt. Eine Möglichkeit zur Optimierung der Arbeit mit Materialien ist die Verwendung der Material-Instanzierung als Mittel zur Anpassung von Parametern, ohne das ursprüngliche Material zu beeinflussen, aus dem sie abgeleitet wurden.
Wenn also ein Material das Primär-Asset ist, das definiert, wie die Oberfläche eines Objekts aussieht und mit der Beleuchtung interagiert, dann verwendet eine Material-Instanz Attribute und Parameter des Parent- oder Basismaterials, um diese Werte zu überschreiben und so Abwechslung und Anpassungsfähigkeit zu erstellen. Das kann auch kostengünstiger sein, als für alle Objekte individuelle Materialien zu verwenden.
Du kannst die Eigenschaften von Materialien und Material-Instanzen folgendermaßen aufschlüsseln:
| Merkmale des Materials | Merkmale der Materialinstanzen |
|---|---|
Mit einem knotenbasierten Editor erstellt. | Verwendet einen Editor, der durch offengelegte Parameter gesteuert wird, die vom Basismaterial überschrieben werden können. |
Enthält alle möglichen Funktions-Inputs eines Materials wie Farbe, metallisch, Rauheit, Opazität usw. | Ermöglicht nur den Zugriff auf exponierte Parameter des Basismaterials, die überschrieben werden können. |
Änderungen am Material erfordern eine Rekompilierung, bevor eine Vorschau der Änderungen ermöglicht wird. | Bietet Echtzeit-Feedback für sich ändernde Parameter, sodass keine Rekompilierung des Materials erforderlich ist. |
Das Materialdiagramm kann jeden Level an Komplexität aufweisen, um seine visuellen Anforderungen zu erfüllen. | Der Zugriff zu nur exponierten Parametern verbessert die Performance und die Workflows. |
Änderungen dieses Materials wirken sich auf alle Objekte aus, die es verwenden. | Änderungen an dieser Material-Instanz wirken sich nur auf die Objekte aus, die sie verwenden. Dadurch eignen sie sich ideal für die Erstellung mehrerer ähnlich aussehender Oberflächen, die von demselben Basis-Parent ausgehen und ähnliche Funktionen aufweisen. |
Der beste Zeitpunkt, um über die Verwendung einer Material-Instanz zusammen mit einem Material nachzudenken, ist, wenn du nur Details anpassen und Parameter wie die Farbe der Materialien, deren Texturen, Skalierung und so weiter anpassen musst. Du solltest neue Basismaterialien erstellen, wenn du ein neues visuelles Verhalten und einen neuen Stil definieren musst (z. B. opak versus durchscheinend), was eine neue Logik im Materialdiagramm erfordert.
Materialien erfordern in der Regel eine anfänglich höhere Einrichtungszeit und sind weniger Performance-freundlich als die Verwendung einer Material-Instanz für Materialien mit ähnlichen Eigenschaften und Attributen.
Weitere Informationen zur Verwendung von Materialien mit Materialinstanzen in deinem Projekt findest du in den folgenden Themen:
Texturen
Texturen sind wie in Maya Bild-Maps, die du auf Input-Attribute des erstellten Materials (z. B. Basis, normal oder Rauheit) anwendest, um die Oberflächendetails zu definieren. In Unreal Engine wird bei der Entwicklung Ihrer Materialien mehr Wert auf physikbasierte Rendering-Konzepte und Echtzeit-Feedback gelegt.
Wenn du Texturen importierst, kannst du sie im Textur-Asset-Editor öffnen, wo du Informationen über sie sehen, deine Einstellungen konfigurieren und einige Anpassungen vornehmen kannst.
Du kannst Folgendes ausführen, um Texturen in Unreal Engine zu optimieren und effizienter mit ihnen zu arbeiten:
Erstelle Texturen mit Werkzeugen von Drittanbietern und passe sie an, bevor du sie importierst.
Verwende Channel-Packing-Techniken, um mehrere Graustufen-Texturen für Material-Inputs wie Rauheit, metallisch und Umgebungsverdeckung in einzelne RGB-Texturen zu kombinieren. Das kann die Performance optimieren, indem eine einzige Textur referenziert wird anstatt mehrere verschiedene Texturen.
Die Engine verwendet automatisch die Texturkomprimierung für Texturen, aber wenn Sie wissen, wie Sie diese Funktion nutzen, können Sie die visuelle Wiedergabetreue und Performance verbessern.
Achte auf die Texturgröße. Für eine Echtzeit-Performance ist es ideal, sich bei Texturen auf Zweierpotenzdimensionen (128, 512, 1.024 usw.) zu verlassen. Nicht-Zweierpotenz-Texturen verwenden nicht das Textur-Streaming-System der Engine, was auf Distanz zu visuellen Artefakten führen kann.
Weitere Informationen zur Verwendung von Texturen in Unreal Engine findest du in den folgenden Themen:
Substrate-Material-Framework
Das Substrate-Material-Framework von Unreal Engine ist ein Ansatz zur Erstellung von Materialien, der die feste Suite von Schattierungsmodellen und Überblendmodi durch ein ausdrucksstärkeres und modulareres Framework ersetzt. Die Materialerstellung erfolgt auf dieselbe Weise wie beim Standardmaterialsystem. Du bist jedoch nicht mehr an einzelne Materialien gebunden, die ein einzelnes Schattierungsmodell und einen einzelnen Überblendmodus verwenden. Du kannst sie in diesem Workflow nahtlos mischen, um einmalige Materialien mit höherer Komplexität zu erstellen.
Weitere Informationen zur Verwendung von Substrate in deinen Projekten und Materialerstellungs-Workflows findest du unter Übersicht über Substrate-Material.
Physikalisch basiertes Rendering mit Materialien
Unreal Engine verwendet Physikalisch basiertes Rendering (PBR) für Schattierung und Rendering, das die Verhalten von Licht mit Oberflächen realitätsgetreu simuliert. Dadurch werden physikalisch plausible Wechselwirkungen mit Licht ermöglicht, um realistisches und – was wichtiger ist – vorhersehbares Bildmaterial unter verschiedenen Beleuchtungsbedingungen zu erstellen, etwa bei direkter Sonneneinstrahlung im Vergleich zur Innenbeleuchtung, oder sogar fotorealistischen Oberflächen im Vergleich zu stilisierten Effekten von handgemalten bis hin zu Cel-Shading-Aussehen.
Die wichtigsten Prinzipien, die du bei der Arbeit mit PBR-Materialien in Unreal Engine beachten solltest, sind:
Realistische Beleuchtungsinteraktionen, bei denen Oberflächen akkurat und vorhersehbar auf verschiedene Beleuchtungseinrichtungen reagieren, egal ob es sich um natürliche (außen) oder künstliche Beleuchtung (innen) handelt.
Konsistenz von Materialien, um in verschiedenen Szenen und Beleuchtungsszenarien korrekt auszusehen.
Ein vereinfachter Workflow, bei dem Künstler Materialien über ihre physikalischen Eigenschaften anstatt durch willkürliche Werte definieren, wodurch das Raten von Schattierung und Beleuchtung in einer Echtzeit-Umgebung durch sofortiges Feedback in der Szene verringert werden kann.
Weitere Informationen findest du unter Physikalisch basierte Materialien
Nächste Seite
Beleuchtung und Rendering in Unreal Engine für Maya-Nutzer
Eine Übersicht der Beleuchtungs- und Rendering-Funktionen von Unreal Engine für Maya-Nutzer.