Ausgaberegister

  • Vertex-Farbregister
  • Nebelregister
  • Position_Register
  • Point_Size_Register
  • Texture_Coordinate_Register

Registernamen werden einem Kleinbuchstaben o vorangestellt, wobei angegeben wird, dass die Ausgaberegister schreibgeschützt sind.

Vertex-Farbregister - oD0, oD1

oD0 ist das diffuse Farbregister. oD1 ist das spektarische Farbregister. Der oD0-Wert ist interpoliert und wird in das Eingabefarberegister 0 (v0) des Pixel-Shaders geschrieben. Der oD1-Wert wird interpoliert und in das Eingabefarberegister 1 (v1) des Pixel-Shaders geschrieben. Weitere Informationen zu Pixel-Shaderfarbenregistern finden Sie unter Register.

Vertex-Shaderversionen 1_1 2_0 2_sw 2_x 3_0 3_sw
Vertex-Farbregister x x x x

 

Nebelregister - oFog

Der Ausgabe-Nebelwert registriert. Der Wert ist der Nebelfaktor, der interpoliert werden soll und dann an die Nebeltabelle weitergeleitet wird. Nur die Skalar-x-Komponente des Nebels wird verwendet. Werte werden zwischen Null und einer klammert, bevor sie an den Rasterizer übergeben werden.

Vertex-Shaderversionen 1_1 2_0 2_sw 2_x 3_0 3_sw
Nebelregister x x x x

 

Position Register - oPos

Die Ausgabeposition registriert. Der Wert ist die Position im homogenen Clipping-Raum. Dieser Wert muss vom Vertex-Shader geschrieben werden.

Vertex-Shaderversionen 1_1 2_0 2_sw 2_x 3_0 3_sw
Positionsregister x x x x

 

Punktgrößenregister - oPts

Die Ausgabepunktgröße registriert. Nur die Skalar-x-Komponente der Punktgröße wird verwendet.

Vertex-Shaderversionen 1_1 2_0 2_sw 2_x 3_0 3_sw
Punktgrößenregister x x x x

 

Texturkoordinatenregister - oT0 bis oT7

Die Ausgabetextkoordinaten registrieren. Insbesondere handelt es sich um ein Array von Ausgabedatenregistern, die als Texturkoordinaten durch die Texturabnahmephasen verwendet werden, die Daten an den Pixel-Shader weiterleiten.

Vertex-Shaderversionen 1_1 2_0 2_sw 2_x 3_0 3_sw
Texturkoordinatenregister x x x x

 

Beim Schreiben in ein Texturkoordinatenregister wird empfohlen, nur so viele Gleitkommawerte wie die Dimension der entsprechenden Texturzuordnung zu übergeben. Steuern Sie die mit einem Modifizierer übergebenen Werte. Verwenden Sie z. B. .xy für eine 2D-Texturzuordnung.

Wenn die Texturprojektion für eine Texturphase aktiviert ist, müssen alle vier Gleitkommawerte in das entsprechende Texturregister geschrieben werden.

Jede der D3DTTFF*-Texturtransformations-Flags sollte null sein, wenn die programmierbare Pipeline verwendet wird.

Texturkoordinatenbereich

Objektvertexdaten enthalten Eingabetextkoordinaten. Objekte, die nicht gekachelte Texturen verwendet werden, verfügen häufig über Texturkoordinaten im Bereich [0,1]. Objekte, die gekachelte Texturen verwenden, z. B. Gelände, verfügen in der Regel über Texturkoordinaten, die von [-?,+?] Wo? kann eine große Gleitkommanummer sein.

Die Texturkoordinateninterpolation wird für die Rasterisierung auf Vertexdaten ausgeführt. Während der Rasterisierung werden Texturkoordinaten zwischen Objektverknappungen interpoliert, geändert durch Texturumbruch und skaliert durch die Texturgröße (auch unter Berücksichtigung des Texturadressenmodus), um einen ganzzahligen Index zu erzeugen. Der Index wird dann zum Ausführen eines Textur-Nachschlagevorgangs verwendet. MaxTextureRepeat kann verwendet werden, um zu bestimmen, wie oft eine Textur gekachelt werden kann.

Wenn Texturkoordinaten direkt in einen Pixel-Shader (mit texcoord oder texcrd) gelesen werden, hängt der Texturkoordinatenbereich von der Anweisung und der Pixel-Shaderversion ab.

Vertex-Shaderregister