Zum Hauptinhalt springen

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.

Graph-Materialien sind so gut wie die eingebauten

Ein Graph-Material bekommt dieselbe Beleuchtung wie die eingebauten Typen, etwa standard, physical und toon, und funktioniert auch auf Mobilgeräten.

Material-Graphen erstellen​

  1. Öffnen Sie den Material-Editor über die linke Leiste.
  2. 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.
  3. Fügen Sie Nodes hinzu und verbinden Sie sie, von den Eingängen bis zum Ausgangs-Node.
  4. 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:

GruppeWas Sie dort finden
EingängeUVs, die Oberflächennormale, Zeit, Position, Texturen, welche Kopie gerade gezeichnet wird
Konstantenfeste Zahlen und Farben, die Sie eintippen
MathematikGrundrechenarten und Kurven für einzelne Zahlen
VektorenVektoren und Farben bilden, zerlegen, mischen und drehen
BeleuchtungBeleuchtungsanteile, die Sie selbst formen
NachbearbeitungNodes, die das gerenderte Bild lesen; siehe Bildschirmeffekte
Ausgangwie 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:

AusgangBedeutet
baseColordie Farbe der Oberfläche
metallic0 für Nichtmetall, 1 für blankes Metall; Werte dazwischen sind selten
roughness0 ist spiegelglatt, 1 ist völlig matt
normalIhre eigene Normale, für mehr Details auf der Oberfläche
emissiveLicht, das die Oberfläche selbst abgibt
alphaTransparenz
clearcoat · clearcoatRoughnesseine klare Lackschicht obendrauf
ior · transmission · thicknessLicht, 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:

  • instanceId sagt Ihnen, welche Kopie gerade gezeichnet wird;
  • instanceColor liefert die Tönung dieser Kopie.
Tausend Kopien, die nicht gleich aussehen

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:

  1. Öffnen Sie die Raumeinstellungen.
  2. Klicken Sie auf + Funktion hinzufügen und wählen Sie Nachbearbeitung, falls der Abschnitt noch nicht da ist.
  3. 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.

Datentexturen als Daten markieren

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öchtenSo geht es
etwas, das sich von selbst bewegtnutzen Sie den Eingang time im Graphen für Pulsieren, Laufen oder Schimmern
etwas, das auf das Spiel reagiertnutzen 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.