Freigeben über


Gewusst wie: Erstellen eines geometriebasierten Farbverlauf-Shaders

In diesem Dokument wird die Verwendung des Shader-Designers und der Directed Graph Shader Language zur Erstellung eines geometriebasierten Farbverlaufsshaders beschrieben.Der Shader skaliert einen konstanten RGB-Farbwert anhand der Höhe jedes Punktes eines Objekts im Welt-Raum.

In diesem Dokument werden die folgenden Aktivitäten veranschaulicht:

  • Hinzufügen von Knoten zu einem Shaderdiagramm

  • Knoteneigenschaften festlegen

  • Trennen von Knoten

  • Knoten verbinden

Erstellen eines geometriebasierten Farbverlaufsshaders

Sie können einen GEOMETRY-basierten Shader implementieren, indem Sie die Position des Pixels in den Shader integrieren.In den Schattierungssprachen enthält ein Pixel mehr Informationen als derzeit seine Farbe und Speicherort auf einem 2D-Bildschirm.Pixel-gewusst, da ein Fragment in einem eine Auflistung Werte System-ist, die die Oberfläche beschreiben, die einem Pixel entspricht.Der Shader, der in diesem Dokument beschrieben wird, verwendet die Höhe jedes Pixels eines 3D-Objekts im Abstand, um die Schlussausgabefarbe des Fragments zu beeinflussen.

Bevor Sie beginnen, überprüfen Sie, ob das Fenster Eigenschaften und Werkzeugkasten angezeigt werden.

So erstellen Sie einen geometriebasierten Farbverlaufshader

  1. Erstellen Sie einen DGSL-Shader, um mit.Informationen dazu, wie Sie einen DGSL-Shader dem Projekt, finden Sie im Abschnitt Erste Schritte in Shader-Designer hinzugefügt wird.

  2. Trennen Sie den Knoten Punktfarbe aus Knoten Endgültige Farbe.Wählen Sie das RGB Terminal des Punktfarbe Knotens aus, und wählen Sie dann Zeilen umbrechen aus.Dadurch wird für den Knoten Platz, der im nächsten Schritt hinzugefügt wird.

  3. Fügen Sie dem Diagramm einen Knoten Multiplizieren hinzu.Wählen Sie im Werkzeugkasten unter Berechnungen die Option Multiplizieren aus, und verschieben Sie sie auf die Entwurfsoberfläche.

  4. Fügen Sie dem Diagramm einen Knoten Maskierungsvektor hinzu.Wähen Sie im Werkzeugkasten unter Hilfsprogramm die Option Maskierungsvektor aus und verschieben Sie den Knoten auf die Entwurfsoberfläche.

  5. Geben Sie für den Knoten Maskierungsvektor Maskenwerte an.In Auswählen Modus wählen Sie den Knoten Maskierungsvektor und anschließend im Fenster Eigenschaften, legen Sie die - Eigenschaft auf Grün / YTrue und legen Sie dann Rot / X, Blau / Z und Alpha / W-Eigenschaften zu False aus.In diesem Beispiel entsprechen Rot / X, Grün / Y und Blau / Z-Eigenschaften auf den x, y zu und zu z-Komponenten des World-Position Knotens, und Alpha / W ist nicht verwendet.Da nur Grün / Y zu True festgelegt ist, wird nur die y-Komponente des Eingabevektors bleibt, nachdem sie maskiert ist.

  6. Fügen Sie dem Diagramm einen Knoten Welt-Position hinzu.Wählen Sie im Werkzeugkasten unter Konstanten die Option World-Position aus und verschieben Sie ihn auf die Entwurfsoberfläche.

  7. Maskieren Sie die Position des Fragments im Welt-Raum.Verschieben Sie das Ausgabe -Terminal des Knotens World-Position im Auswahl-Modus zum Vektor-Terminal des Knotens Maskierungsvektor.Diese Verbindung maskiert die Position des Fragments, damit die X- und z-Komponenten ignorieren werden.

  8. Multiplizieren Sie die RGB-Farbenkonstante mit der maskierten Position im Welt-Raum.Verschieben Sie das RGB Terminal Punktfarbe des Knotens auf das Y Terminal Multiplizieren des Knotens, und verschieben Sie dann das Ausgabe Terminal Maskierungsvektor des Knotens auf das X Terminal Multiplizieren des Knotens.Diese Verbindung skaliert den Farbwert durch die Höhe des Pixels im Raums.

  9. Verbinden Sie den skalierten Farbwert mit der endgültigen Farbe.Verschieben Sie das Ausgabe Terminal Multiplizieren des Knotens auf das RGB Terminal Endgültige Farbe des Knotens.

Die folgende Abbildung zeigt das endgültige Shaderdiagramm und eine Vorschau des auf die Kugel angewendeten Shaders.

HinweisHinweis

In der Abbildung wird zur besseren Veranschaulichung des Schadereffekts die Farbe Orange angegeben. Da die Vorschauform jedoch über keine Position im Welt-Raum verfügt, wird der Shader nicht vollständig in der Vorschau des Shader-Designers angezeigt.Die Vorschau des Shader muss in einer wirklichen Szene angezeigt werden, damit der vollständige Effekt deutlich wird.

Shader-Diagramm und eine Vorschau seiner Effekte

Für einige Shader erzielen Sie mit bestimmte Formen möglicherweise bessere Vorschauen.Informationen darüber, wie Shader im Shader-Designer, finden Sie unter In der Vorschau von Shadern in Shader-Designer in der Vorschau angezeigt werden

Die folgende Abbildung veranschaulicht, wie der in diesem Dokument beschriebenen Shader auf die in Gewusst wie: Modellieren einer 3D-Basisszene dargestellte 3D-Szene angewendet wird.Die Farbintensität erhöht sich mit der Höhe des Punktes in der Welt.

Farbverlauf in einem 3D-Geländemodell

Weitere Informationen zum Anwenden eines Schaders in einem 3D-Modell finden Sie unter Gewusst wie: Anwenden eines Shaders auf ein 3D-Modell.

Siehe auch

Aufgaben

Gewusst wie: Anwenden eines Shaders auf ein 3D-Modell

Gewusst wie: Exportieren eines Shaders

Gewusst wie: Modellieren einer 3D-Basisszene

Gewusst wie: Erstellen eines Graustufentextur-Shaders

Konzepte

Shader-Designer

Weitere Ressourcen

Shader-Designer-Knoten