Material-Graphen
Bauen Sie ein eigenes Material aus Nodes, wenn die Standardmaterialien nicht reichen. Mit einem Graphen können Sie auch einen Vollbildeffekt erstellen.
Die Standard-Materialtypen decken die meisten Projekte ab. Wenn nicht, verbinden Sie Nodes zu einem Graphen, und der Editor macht daraus ein echtes Material.
Nutzen Sie einen Graphen für alles, was ein festes Material nicht kann: eine laufende Textur, einen Auflösungseffekt, ein Hologramm, Wasser, eine Farbe, die sich mit dem Blickwinkel ändert, eine Fahne, die sich im Wind wellt.
Alle Nodes und ihre Ports finden Sie in der Shader-Node-Referenz: 95 Nodes.
Ein Graph-Material bekommt dieselbe Beleuchtung wie die eingebauten Typen, etwa standard,
physical und toon, und funktioniert auch auf Mobilgeräten.
Material-Graphen erstellen
- Öffnen Sie den Material-Editor über die linke Leiste.
- Klicken Sie auf + Material erstellen, um mit einem leeren Graphen zu beginnen. Oder klicken Sie auf Vorhandenes Material klonen, um mit einer Kopie eines Materials zu beginnen, das Sie schon haben.
- Fügen Sie Nodes hinzu und verbinden Sie sie, von den Eingängen bis zum Ausgangs-Node.
- Verwenden Sie das Material an Ihren Objekten wie jedes andere Material.
Sie können einen Graphen auch unter Projekt-Assets anlegen: Rechtsklick, dann Asset erstellen → Material-Graph.
Aufbau eines Graphen
Ein Graph verläuft von den Eingängen über Rechnungen zum Ausgang. Die Nodes sind so gruppiert:
| Gruppe | Was Sie dort finden |
|---|---|
| Eingänge | UVs, die Oberflächennormale, Zeit, Position, Texturen, welche Kopie gerade gezeichnet wird |
| Konstanten | feste Zahlen und Farben, die Sie eintippen |
| Mathematik | Grundrechenarten und Kurven für einzelne Zahlen |
| Vektoren | Vektoren und Farben bilden, zerlegen, mischen und drehen |
| Beleuchtung | Beleuchtungsanteile, die Sie selbst formen |
| Nachbearbeitung | Nodes, die das gerenderte Bild lesen; siehe Bildschirmeffekte |
| Ausgang | wie die Oberfläche am Ende aussieht |
Die Ausgänge der Oberfläche
Der Graph endet am Ausgangs-Node. Seine Eingänge beschreiben die Oberfläche:
| Ausgang | Bedeutet |
|---|---|
baseColor | die Farbe der Oberfläche |
metallic | 0 für Nichtmetall, 1 für blankes Metall; Werte dazwischen sind selten |
roughness | 0 ist spiegelglatt, 1 ist völlig matt |
normal | Ihre eigene Normale, für mehr Details auf der Oberfläche |
emissive | Licht, das die Oberfläche selbst abgibt |
alpha | Transparenz |
clearcoat · clearcoatRoughness | eine klare Lackschicht obendrauf |
ior · transmission · thickness | Licht, das beim Durchgang gebrochen wird, für Glas und Flüssigkeiten |
Jeder Ausgang, den Sie nicht verbinden, behält seinen Standardwert. Ein Ausgang, den Sie nicht nutzen, kostet nichts.
Jede Kopie anders aussehen lassen
Zwei Eingangs-Nodes sind für instanziierte Objekte gedacht, bei denen ein Objekt viele Male gezeichnet wird:
instanceIdsagt Ihnen, welche Kopie gerade gezeichnet wird;instanceColorliefert die Tönung dieser Kopie.
Geben Sie instanceId in einen Hash, dann bekommt jede Kopie ihre eigene Tönung, Größe oder
Animationszeit. Gras, bei dem jeder Halm ein wenig anders schwankt, kostet genauso viel wie Gras,
bei dem alle Halme gleich schwanken.
Bei einem gewöhnlichen Objekt liefern beide Nodes sichere Standardwerte. Der Graph funktioniert also auch bei Objekten, die nicht instanziiert sind.
Bildschirmeffekte
Ein Graph, der das gerenderte Bild liest, wird zu einem Vollbildeffekt über der ganzen Szene. Sie legen ihn nicht auf ein Objekt. Nutzen Sie ihn für Farbkorrekturen, Vignetten, Unschärfe oder Scanlines.
Einrichten müssen Sie dafür nichts. Sobald der Graph einen Node nutzt, der das Bild liest, zum
Beispiel screenColor, wird er zum Effekt.
So fügen Sie den Effekt hinzu:
- Öffnen Sie die Raumeinstellungen.
- Klicken Sie auf + Funktion hinzufügen und wählen Sie Nachbearbeitung, falls der Abschnitt noch nicht da ist.
- Klicken Sie auf + Effekt hinzufügen und wählen Sie Ihren Graphen.
Mehrere Effekte laufen in der Reihenfolge, die Sie festlegen.
Texturen und Farbe
Ein Textur-Node liest ein Bild aus Ihrem Projekt. Farbbilder werden für Sie umgerechnet, sodass die Rechnungen mit echten Farbwerten arbeiten.
Manche Texturen enthalten Zahlen statt Farben: eine Roughness-Map, eine Maske, eine Höhenkarte. Markieren Sie diese als Daten, sonst werden sie farbkorrigiert und Ihre Werte stimmen nicht mehr ganz. Das ist der häufigste Grund, warum eine Roughness-Map ganz anders aussieht als erwartet.
Graph-Material ändern, während die Szene läuft
Ein Skript kann die Einstellungen eines Graphen nicht ändern. Skripte haben keinen Zugriff auf die Graph-Komponente. Die zwei häufigsten Fälle lassen sich trotzdem lösen:
| Sie möchten | So geht es |
|---|---|
| etwas, das sich von selbst bewegt | nutzen Sie den Eingang time im Graphen für Pulsieren, Laufen oder Schimmern |
| etwas, das auf das Spiel reagiert | nutzen Sie stattdessen ein gewöhnliches Material; ein Skript kann dessen emissiveIntensity, color, opacity oder roughness ändern |
Ein Leuchtfeuer, das endlos pulsiert, ist zum Beispiel ein Graph, der time liest. Ein
Leuchtfeuer, das heller wird, wenn der Spieler punktet, ist ein Skript, das emissiveIntensity an
einem Standardmaterial ändert.
Tipps
- Beginnen Sie mit einem vorhandenen Material. Vorhandenes Material klonen macht aus einem Standardmaterial einen Graphen. So haben Sie einen korrekten, vollständigen Ausgangspunkt. Auf einer leeren Arbeitsfläche müssten Sie Beleuchtung nachbauen, die Sie gar nicht brauchen.
- Achten Sie darauf, was Sie hinzufügen. Ein Graph läuft für jedes Pixel in jedem Frame. Eine Texturabfrage ist günstig, eine Schleife nicht. Wenn die Bildrate nach einer Änderung sinkt, prüfen Sie den zuletzt hinzugefügten Node.
- Ein Graph für einen Look. Jedes Objekt, das den Graphen nutzt, ändert sich mit, wenn Sie ihn bearbeiten. So gibt es genau eine Stelle, an der Sie den Look anpassen.
Weiter: Partikel – Feuer, Rauch, Funken und Staub.