Freigeben über


Gewusst wie: Erstellen eines Phong-Shaders

Dieses Dokument veranschaulicht, wie Sie den Shader-Designer und die Directed Graph Shader Language (DGSL) verwenden, um einen Beleuchtungs-Shader zu erstellen, der das klassische Phong-Beleuchtungsmodell implementiert.

In diesem Dokument werden die folgenden Aktivitäten veranschaulicht:

  • Hinzufügen von Knoten zu einem Shaderdiagramm

  • Trennen von Knoten

  • Knoten verbinden

Das Phong-Beleuchtungsmodell

Das Phong-Beleuchtungsmodell erweitert das Lambert-Beleuchtungsmodell um Glanzlichter, die die reflektierenden Eigenschaften einer Oberfläche simulieren.Die Glanzkomponente stellt zusätzliche Beleuchtung aus denselben direktionalen Lichtquellen, die im Lambert-Beleuchtungsmodell verwendet werden, aber der Beitrag zur abschließenden Farbe ist anders verarbeitet.Glanze Hervorhebung beeinflusst jeder Oberfläche in der Szene als, auf Grundlage der Beziehung zwischen der Ansichtsrichtung, der Richtung der Lichtquellen und der Ausrichtung der Oberfläche.Es ist ein Produkt der Glanzfarbe, der Glanzen Leistungsfähigkeit und der Ausrichtung der Oberfläche und Farbe, der Intensität und der Richtung der Lichtquellen.Oberflächen, die die Lichtquelle direkt am Viewer widerspiegeln, erhalten den maximalen Glanzen Beitrag und die Oberflächen, die die Lichtquelle Fokus aus dem Viewer widerspiegeln, erhalten keinen Beitrag.unter dem Phong-Beleuchtungsmodell werden eine oder mehrere Glanzkomponenten kombiniert, um die Farbe und die Intensität der Glanzen Hervorhebung für jeden Punkt auf dem Objekt zu ermitteln und dann werden zum Ergebnis des Lambert-Beleuchtungsmodells hinzugefügt, um die endgültige Farbe des Pixels zu erzeugen.

Weitere Informationen zum Lambert-Beleuchtungsmodell finden Sie unter Gewusst wie: Erstellen eines Lambert-Shaders.

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

So erstellen Sie einen Phong-Shader

  1. Erstellen Sie einen Lambert-Shader, wie in Gewusst wie: Erstellen eines Lambert-Shaders beschrieben.

  2. Trennen Sie den Knoten Lambert aus Knoten Endgültige Farbe.Wählen Sie das RGB Terminal des Lambert 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 einen Knoten Hinzufügen dem Diagramm hinzu.In Werkzeugkasten unter Berechnungen, verschieben ausgewähltes Hinzufügen und es auf die Entwurfsoberfläche.

  4. Fügen Sie dem Diagramm den Knoten Glanz hinzu.Wählen Sie im Werkzeugkasten unter Hilfsprogramm das Werkzeug Glanz aus, und verschieben Sie es auf die Entwurfsoberfläche.

  5. Fügen Sie Glanzlichter hinzu.Verschieben Sie das Ausgabe Terminal Glanz des Knotens auf das X Terminal Hinzufügen des Knotens, und verschieben Sie dann das Ausgabe Terminal Lambert des Knotens auf das Y Terminal Hinzufügen des Knotens.Diese Verbindungen kombinieren belaufen sich die auf diffuse und Glanzfarbenbeiträge für das Pixel.

  6. Verbinden Sie den berechneten Farbwert mit der endgültigen Farbe.Verschieben Sie das Ausgabe Terminal Hinzufügen des Knotens auf das RGB Terminal Endgültige Farbe des Knotens.

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

HinweisHinweis

Um die Auswirkungen des Shaders in dieser Abbildung besser zu veranschaulichen, ist eine orangefarbenen Farbe angegeben wurde mit dem MaterialDiffuse-Parameter des Shaders verwendete, und ein metallisch-aussehendes Ende angegeben wurde mit der MaterialSpecular und MaterialSpecularPower-Parameter verwendet.Informationen zum materielle Parameter, finden Sie Befehlsvorschau Shaderabschnitt in Shader-Designer.

Shader-Diagramm und eine Vorschau seiner Effekte

Für einige Shader erzielen Sie mit bestimmte Formen möglicherweise bessere Vorschauen.Weitere Informationen dazu, wie Shader im Shader-Designer, finden Sie Befehlsvorschau Shaderabschnitt in Shader-Designer in der Vorschau angezeigt werden

Die folgende Abbildung zeigt den in diesem Dokument beschriebenen Shader, der auf ein 3D-Modell angewendet wurde.Die Eigenschaft MaterialSpecular ist auf (1.00, 0.50, 0.20, 0.00) festgelegt und die Eigenschaft MaterialSpecularPower auf 16.

HinweisHinweis

Die Eigenschaft MaterialSpecular bestimmt die Art des dargestellten Oberflächenmaterials.Eine Hochglanzoberfläche wie Glas oder Plastik hat eine helle, weiße Glanzfarbe.Eine metallische Oberfläche hat eine Glanzfarbe, die ihrer diffusen Farbe ähnlich ist.Eine Satin-ähnliche Oberfläche hat eine dunkelgraue Glanzfarbe.

Die Eigenschaft MaterialSpecularPower bestimmt, wie intensiv die Glanzlichter sind.Hohe Glanze Potenzen simulieren die stumpferen, mehr-lokalisierten Hervorhebungen.Sehr niedrig simulieren Glanze Potenzen die intensiven, fegenden Hervorhebungen, die oversaturate und die Farbe der Ganzoberfläche zu reduzieren können.

Phong-Beleuchtung in einem Modell

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: Erstellen eines Lambert-Shaders

Konzepte

Shader-Designer

Weitere Ressourcen

Shader-Designer-Knoten