Kurz gesagt
- Eine Material Function macht ein Netzwerk aus Materialknoten als separates Asset wiederverwendbar.
- Die beispielhafte Fresnel-Funktion steuert den winkelabhängigen Effekt über Eingaben für Exponent und Intensität.
- Function Input- und Function Output-Knoten ermöglichen es, der Funktion Werte zu übergeben und Ergebnisse auszugeben.
- Änderungen an einer vorhandenen Material Function können sich auf die Materialien auswirken, in denen sie verwendet wird.
Was lernen Sie in dieser Anleitung?
In Unreal Engine lässt sich ein Knotennetzwerk in einer Material Function bündeln, statt es für verschiedene Materialien immer wieder neu aufzubauen. Ein komplexer Abschnitt kann so als einzelner Funktionsaufruf in andere Materialien eingefügt werden. Anhand von Epic Games’ Fresnel-Beispiel erstellen wir einen Effekt, der an den Kanten stärker hervortritt und dessen Intensität und Abfallverhalten sich anpassen lassen.
Fresnel-ähnliche Effekte können Oberflächenkanten je nach Blickwinkel hervorheben und Silhouetten in dunklen Bereichen besser sichtbar machen. Die hier gezeigte Methode simuliert keine physikalische Beleuchtung, sondern ergänzt das Material um visuelle Informationen. Ziel ist es, die Berechnung in die Funktion zu verlagern, sodass Anwender nur die erforderlichen Einstellungen sehen.
Voraussetzungen
Die schrittweise Fresnel-Anleitung aus den Quellen wurde für Unreal Engine 4 erstellt und findet sich auf einer Dokumentationsseite zu Version 4.27. Daher orientieren sich Menünamen und Benutzeroberfläche des Beispiels an dieser Anleitung. Die Quellen nennen weder die Notwendigkeit eines Kontos noch Hardwareanforderungen oder Produktpreise.
Für den Workflow benötigen Sie den Content Browser und den Material Editor sowie eine Material Function und ein Material. Im Beispiel kommen folgende Knoten zum Einsatz: Constant 3 Vector, Transform, Camera Vector WS, Dot Product, Clamp, OneMinus, Power und Multiply. Damit sich die Funktion anpassen lässt, verwenden wir zwei Function Input-Knoten; für die Ausgabe kommt ein Function Output-Knoten hinzu.
Schritt für Schritt eine Fresnel Material Function erstellen
Erstellen Sie das Funktions-Asset. Klicken Sie im Content Browser mit der rechten Maustaste und wählen Sie New > Materials & Textures > Material Function. Geben Sie der Funktion einen Namen, der ihre Aufgabe beschreibt. Custom_Fresnel ist ein Beispiel für einen Namen, der die Funktion verständlich beschreibt.
Richten Sie den ersten Teil der Winkelberechnung ein. Öffnen Sie die Material Function und fügen Sie die Knoten Constant 3 Vector, Transform, Camera Vector WS und Dot Product zum Graphen hinzu. Setzen Sie den blauen Kanal des Constant 3 Vector-Knotens auf 1,0. Verbinden Sie dessen Ausgabe mit dem Eingang des Transform-Knotens und stellen Sie diesen so ein, dass er von Tangent Space nach World Space transformiert. Verbinden Sie die Ausgabe des Transform-Knotens mit dem A-Eingang des Dot Product-Knotens und die Ausgabe von Camera Vector WS mit dessen B-Eingang. Diese Berechnung verwendet die Beziehung zwischen Oberflächen- und Kamerarichtung.
Begrenzen Sie das Ergebnis und leiten Sie den Kanteneffekt ab. Verbinden Sie die Ausgabe des Dot Product-Knotens mit dem Clamp-Knoten und begrenzen Sie den Wert auf den Bereich von 0 bis 1. Verbinden Sie anschließend die Clamp-Ausgabe mit dem OneMinus-Knoten. Dadurch wird der Wert für den nächsten Schritt invertiert, was im Beispiel dazu beiträgt, den Effekt an den Kanten hervorzuheben.
Definieren Sie die Eingaben für die Funktion. Fügen Sie zwei Function Input-Knoten hinzu. Benennen Sie den einen Fresnel Exponent und den anderen Fresnel Intensity. In den Beschreibungsfeldern können Sie erläutern, was die Eingaben steuern. Stellen Sie den Typ beider Eingaben auf Scalar ein. Function Input-Knoten ermöglichen es der Funktion, Werte von außen zu erhalten. Diese Werte lassen sich später im Material, das die Funktion verwendet, verbinden.
Verbinden Sie die Exponentensteuerung und die Intensität. Fügen Sie einen Power- und einen Multiply-Knoten hinzu. Verbinden Sie die OneMinus-Ausgabe mit dem Base-Eingang des Power-Knotens und Fresnel Exponent mit dessen Exp-Eingang. Verbinden Sie die Power-Ausgabe mit dem A-Eingang des Multiply-Knotens und Fresnel Intensity mit dessen B-Eingang. Der Exponent steuert damit die Verteilung des Kanteneffekts, während der Intensitätswert dessen Stärke bestimmt.
Definieren Sie die Ausgabe und kompilieren Sie die Funktion. Verbinden Sie die Ausgabe des Multiply-Knotens mit dem Function Output-Knoten. Klicken Sie anschließend in der Werkzeugleiste auf Apply, um die Material Function zu kompilieren. Laut der Quellanleitung wird die Apply-Schaltfläche nach erfolgreicher Kompilierung deaktiviert. Prüfen Sie bei einem Fehler zuerst die Verbindungen und Eingabetypen.
Testen Sie die Funktion in einem Material. Erstellen Sie im Content Browser ein neues Material und öffnen Sie es. Fügen Sie die Funktion Custom_Fresnel zum Graphen hinzu. Wie im Beispiel können Sie einen Constant 3 Vector-Knoten mit Base Color verbinden und Rot verwenden: R 1,0; G 0; B 0. Verwenden Sie vier Scalar Parameter-Knoten für die übrigen Einstellungen neben der Grundfarbe. Setzen Sie Metallic auf 1,0, Roughness auf 0,5, Fresnel Intensity auf 1,0 und Fresnel Exponent auf 5,0. Verbinden Sie die Ausgabe der Funktion mit dem Emissive Color-Eingang des Materials und kompilieren Sie das Material. Diese Werte sind die Ausgangseinstellungen des Beispiels und lassen sich für andere visuelle Ergebnisse anpassen.
Veröffentlichen Sie die Funktion bei Bedarf in der Bibliothek. Klicken Sie im Graphen der Material Function auf eine freie Stelle, um die Knotenauswahl aufzuheben. Die grundlegenden Eigenschaften der Funktion erscheinen daraufhin im Details-Panel. Aktivieren Sie Expose to Library, fügen Sie eine Beschreibung hinzu und legen Sie passende Kategorien fest. Danach kann die Funktion in der Material Function Library des Material Editors aufgeführt werden. Möglicherweise müssen Sie den Editor neu starten, damit eine neue Funktion angezeigt wird.
Häufige Fehler
Prüfen Sie zuerst die Verbindungen von Ein- und Ausgängen: Werte müssen über Function Input-Knoten eingehen, und das berechnete Ergebnis muss über Function Output ausgegeben werden. Die verbundenen Daten müssen dem erwarteten Typ entsprechen. Wird beispielsweise an einen Eingang, der Scalar erwartet, ein ungeeigneter Typ angeschlossen, kann das zu einem Kompilierungsfehler führen. Um ein Zwischenergebnis der Funktion zu prüfen, klicken Sie mit der rechten Maustaste auf einen Knoten und wählen Sie Start Previewing Node. So können Sie das Netzwerk bis zu diesem Punkt in der Vorschau betrachten.
Ein weiteres Risiko besteht darin, eine im Projekt verwendete Funktion unbedacht zu ändern. Wenn Sie einen Function Input-Knoten löschen, fällt der entsprechende Eingang in den Materialien weg, die diese Funktion verwenden. Auch Fehler in der Funktion oder das Entfernen des bisherigen Verhaltens können sich darauf auswirken, ob abhängige Materialien korrekt kompiliert werden oder funktionieren. Prüfen Sie daher vor Änderungen an einer veröffentlichten Funktion, welche Materialien sie verwenden, und testen Sie die Änderung zunächst in einem Beispielmaterial.
Was bringt das im Workflow für Architektur und Visualisierung?
Wenn in der Architekturvisualisierung ähnliche Oberflächeneffekte in verschiedenen Materialien wiederholt eingesetzt werden, kann das Bündeln des gemeinsamen Knotennetzwerks in einer Material Function die Organisation und Wartung erleichtern. Wird eine gemeinsame Berechnung in der Funktion geändert, müssen viele kopierte Graphen nicht mehr einzeln aktualisiert werden. Eine Kantenbetonung kann sich für visuelle Experimente eignen, wenn die Silhouette eines Modells stärker hervortreten soll. Die Quellen enthalten jedoch keine Angaben zur Renderleistung der Funktion in Architekturprojekten, zu Hardwareanforderungen oder zur Kompatibilität mit anderen Unreal-Engine-Versionen. Büros sollten sie daher zunächst mit der vorhandenen Version und Materialstruktur testen und gemeinsame Funktionen anschließend kontrolliert einführen.
Nächste Schritte
Verändern Sie beim ersten Test die Werte für Intensity und Exponent und beobachten Sie, wie sich das Ergebnis auf der Oberfläche verändert. Fügen Sie dieselbe Funktion mehreren Materialien hinzu, um zu sehen, wie sich die gemeinsame Nutzung bei der Wartung bewährt. Aussagekräftige Namen, Beschreibungen der Eingaben und ein kurzer Bibliothekstext erleichtern es dem Team, die passende Funktion zu finden. Achten Sie auch beim Umwandeln anderer Materialgraphen in Funktionen auf klare Ein- und Ausgänge: Das intern verborgene Knotennetzwerk sollte über eine verständliche Oberfläche von außen nutzbar sein.
Quelle und Lizenz
Diese Anleitung wurde auf Grundlage der Dokumentation Material Functions Overview, Making Material Functions und Creating Material Functions von Epic Games ins Türkische übertragen. Die Quellseiten werden unter einer freien Lizenz angeboten; der beispielhafte Fresnel-Workflow basiert auf der Dokumentation zu Unreal Engine 4.27.
Quellen
3 QuellenQuelltexte werden nicht neu veröffentlicht; kurze Zitate sind gekennzeichnet, der Rest ist eigene Zusammenfassung und Einordnung.
Für Architekturbüros und Visualisierungsteams liegt der größte Vorteil dieser Methode darin, wiederkehrende Materialknoten an einer zentralen Stelle zu verwalten und Änderungen einfacher handhabbar zu machen. Eine Kantenbetonung lässt sich ebenfalls schnell ausprobieren, um eine Silhouette sichtbarer zu machen. Sie sollte jedoch nicht als Ersatz für physikalische Beleuchtung verstanden werden.
Vor der Anwendung ist es wichtig, das Beispiel mit der verwendeten Unreal-Engine-Version zu testen und die Auswirkungen der Funktion auf bestehende Materialien zu prüfen. Die Quellen enthalten keine Angaben zu Preisen, Lizenzbedingungen oder Hardwareanforderungen. Deshalb wäre es nicht sinnvoll, Kosten- oder Leistungsvorteile vorauszusetzen. Für Studierende ist ein kleines Testmaterial ein praktischer Einstieg, um die Funktionsweise zu verstehen.
Häufige Fragen
Wozu dient eine Unreal Engine Material Function?
Sie speichert ein Netzwerk aus Materialknoten als separates Asset und ermöglicht dessen Wiederverwendung in anderen Materialien. Ein komplexes Netzwerk kann im Materialgraphen als einzelner Funktionsaufruf verwendet werden.
Welche Werte lassen sich in der Fresnel Material Function anpassen?
In diesem Beispiel steuert Fresnel Exponent die Verteilung des Effekts und Fresnel Intensity dessen Intensität. Die beispielhaften Ausgangswerte im Material sind 5,0 beziehungsweise 1,0.
Wie erscheint eine Material Function in der Bibliothek?
Aktivieren Sie in den grundlegenden Eigenschaften der Funktion Expose to Library und legen Sie ihre Kategorien fest. Damit die neue Funktion in der Liste erscheint, muss der Editor möglicherweise neu gestartet werden.



