Freigeben über


Konstante Knoten

Im Shader-Designer stellen konstante Knoten Literalwerte und interpolierte Vertexattribute bei Pixel-Shader-Berechnungen dar. Da Vertexattribute interpoliert werden, und daher bei jedem Pixel unterschiedlich ausfallen, empfängt jede Pixel-Shader-Instanz eine andere Version der Konstante. Dadurch erfährt jedes Pixel eine individuelles Darstellung.

Interpolation von Vertexattributen

Das Bild einer 3D-Szene in einem Spiel oder einer App wird erzeugt, indem eine Anzahl von Objekten mathematisch in Pixel auf dem Bildschirm transformiert werden. Die Objekte werden über Vertices, Vertextattribute und primitive Definition definiert. Alle erforderlichen Informationen zur individuellen Darstellung eines Pixels, werden durch Vertexattribute angegeben. Diese werden entsprechend der Nähe des Pixels zu den verschiedenen Vertices gemischt, die sein Primitiv bilden. Bei einer Primitive handelt es sich um ein grundlegendes Renderingelement; das heißt, eine einfache Form wie einen Punkt, eine Zeile oder ein Dreieck. Ein Pixel, das nur nahe bei einem Vertex liegt, erhält Konstanten, die mit diesem Vertex fast identisch sind. Ein Pixel, dessen Abstand zu allen Vertices einer Primitive gleichmäßig ist, erhält Konstanten, die dem Durchschnitt dieser Vertices entsprechen. In der Grafikprogrammierung gelten die von den Pixeln empfangen Konstanten als interpoliert. Pixeln auf diese Weise Konstantendaten bereitzustellen, führt zu sehr guter visueller Qualität und reduziert gleichzeitig Speicherbedarf- und Bandbreitenanforderungen.

Obwohl jede Pixel-Shader-Instanz nur einen Satz Konstantenwerte erhält und diese Werte nicht geändert werden können, erhalten unterschiedliche Pixel-Shader-Instanzen verschiedene Konstantendatensätze. Dieser Entwurf ermöglicht einem Shaderprogramm, für jedes Pixel in der Primitive eine andere Farbeausgabe zu erzeugen.

Konstantenknotenverweis

Knoten

Details

Eigenschaften

Kameravektor

Der Vektor, der sich vom aktuellen Pixel bis zur Kamera im Raum erstreckt.

Damit können Sie Reflexionen im Raum berechnen.

Ausgabe

Output: float3

Der Vektor vom aktuellen Pixel zur Kamera.

Kein

Farbkonstante

Ein konstanter Farbwert.

Ausgabe

Output: float4

Der Farbwert.

Ausgabe

Der Farbwert.

Konstante

Ein konstanter Skalarwert.

Ausgabe

Output: float

Der Skalarwert.

Ausgabe

Der Skalarwert.

2D-Konstante

Eine Vektorkonstante aus zwei Komponenten.

Ausgabe

Output: float2

Der Vektorwert.

Ausgabe

Der Vektorwert.

3D-Konstante

Eine Vektorkonstante aus drei Komponenten.

Ausgabe

Output: float3

Der Vektorwert.

Ausgabe

Der Vektorwert.

4D-Konstante

Eine Vektorkonstante aus vier Komponenten.

Ausgabe

Output: float4

Der Farbwert.

Ausgabe

Der Vektorwert.

Normalisierte Position

Die Position des aktuellen Pixels, ausgedrückt in normalisierten Gerätekoordinaten.

Die x-Koordinate und die y-Koordinate verfügen über Werte in einem Bereich von [– 1, 1]. Der Wert der z-Koordinate liegt in einem Bereich von [0, 1], und die w-Komponente enthält den Punkttiefenwert im Ansichtsraum. W wird nicht normalisiert.

Ausgabe

Output: float4

Die Position des aktuellen Pixels.

Kein

Punktfarbe

Die diffuse Farbe des aktuellen Pixels. Eine Kombination aus der diffusen Farbe des Materials und den Farbattributen des Vertex.

Ausgabe

Output: float4

Die diffuse Farbe des aktuellen Pixels.

Kein

Punkttiefe

Die Tiefe des aktuellen Pixels im Ansichtsraum.

Ausgabe

Output: float

Die Tiefe des aktuellen Pixels.

Kein

Normalisierte Punkttiefe

Die Tiefe des aktuellen Pixels, ausgedrückt in normalisierten Gerätekoordinaten.

Das Ergebnis weist einen Wert im Bereich von [0, 1] auf.

Ausgabe

Output: float

Die Tiefe des aktuellen Pixels.

Kein

Bildschirmposition

Die Position des aktuellen Pixels, ausgedrückt in Bildschirmkoordinaten.

Die Bildschirmkoordinaten basieren auf dem aktuellen Viewport. Die x- und y-Komponenten enthalten die Bildschirmkoordinaten, die z-Komponente enthält die Tiefe, die auf einen Bereich von [0, 1] normalisiert ist, und die w-Komponente enthält den Tiefenwert im Ansichtsraum.

Ausgabe

Output: float4

Die Position des aktuellen Pixels.

Kein

Oberflächennormale

Die Oberflächennormale des aktuellen Pixels im Objektraum.

Damit können Sie Beleuchtungseinwirkungen und Reflexionen im Objektraum berechnen.

Ausgabe

Output: float3

Die Oberflächennormale des aktuellen Pixels.

Kein

Kameravektor im Tangentialraum

Der Vektor, der sich vom aktuellen Pixel bis zur Kamera im Tangentialraum erstreckt.

Damit können Sie Reflexionen im Tangentialraum berechnen.

Ausgabe

Output: float3

Der Vektor vom aktuellen Pixel zur Kamera.

Kein

Lichtrichtung im Tangentialraum

Der Vektor, der die Richtung definiert, in der Licht von einer Lichtquelle im Tangentialraum des aktuellen Pixels umgewandelt wird.

Damit können Sie Beleuchtungs- und Glanzeinwirkungen im Tangentialraum berechnen.

Ausgabe:

Output: float3

Der Vektor vom aktuellen Pixel zu einer Lichtquelle.

Kein

World-Normale

Die Oberflächennormale des aktuellen Pixels im Raum.

Damit können Sie Beleuchtungseinwirkungen und Reflexionen im Raum berechnen.

Ausgabe

Output: float3

Die Oberflächennormale des aktuellen Pixels.

Kein

World-Position

Die Position des aktuellen Pixels im Raum.

Ausgabe

Output: float4

Die Position des aktuellen Pixels.

Kein