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
Erstellen Sie einen Lambert-Shader, wie in Gewusst wie: Erstellen eines Lambert-Shaders beschrieben.
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.
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.
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.
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.
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.
Hinweis |
---|
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. |
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.
Hinweis |
---|
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. |
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