Ausgaberegister

  • Vertexfarbregister
  • Fog Register
  • _Positionsregister
  • _ _ Punktgrößenregister
  • _Texturkoordinatenregister _

Registernamen wird ein Kleinbuchstabe o vorangehende, der angibt, dass die Ausgaberegister write-only sind.

Vertexfarbregister – oD0, oD1

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

Vertex-Shaderversionen 1_1 2 _ 0 2 _ sw 2 _ x 3 _ 0 3 _ sw
Vertexfarbregister x x x x

Register für 2017– oFog

Der Ausgabewert wird registriert. Der Wert ist der Zudingfaktor, der interpoliert und dann an die Tabellentabelle "Table" (Tafel) geroutet werden soll. Es wird nur die skalare x-Komponente des Skalars verwendet. Werte werden vor der Übergabe an den Rasterizer zwischen 0 und 1 geklammert.

Vertex-Shaderversionen 1_1 2 _ 0 2 _ sw 2 _ x 3 _ 0 3 _ sw
Fog Register x x x x

Positionsregister – oPos

Die Ausgabeposition wird registriert. Der Wert ist die Position im homogenen Ausschneidebereich. 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ößenregister. Es wird nur die skalare x-Komponente der Punktgröße 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 Ausgabetexturkoordinatenregister. Insbesondere handelt es sich hierbei um ein Array von Ausgabedatenregistern, die von den Texturstastingstufen als Texturkoordinaten iteriert und verwendet werden, um Daten an den Pixel-Shader weiterleitet.

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 Texturkarte zu übergeben. Steuern Sie die Werte, die mit einem Modifizierer übergeben werden. 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.

Jedes der D3DTTFF-Texturtransformationsflags sollte null * sein, wenn die programmierbare Pipeline verwendet wird.

Texturkoordinatenbereich

Objektvertexdaten liefern Eingabetexturkoordinaten. Objekte, die keine kachelierten Texturen verwenden, verfügen in der Regel über Texturkoordinaten im Bereich [ 0,1. ] Objekte, die kachelierte Texturen verwenden, z. B. Gelände, verfügen in der Regel über Texturkoordinaten, die von [ -?,+? ] wo ? kann eine große Gleitkommazahl sein.

Die Texturkoordinateninterpolation wird für Scheitelpunktdaten für die Rasterung durchgeführt. Während der Rasterung werden Texturkoordinaten zwischen Objektvertices interpoliert, durch Texturumbruch geändert und durch die Texturgröße skaliert (auch unter Berücksichtigung des Texturadressmodus), um einen ganzzahligen Index zu erzeugen. Der Index wird dann verwendet, um eine Textursuche durchzuführen. MaxTextureRepeat kann verwendet werden, um zu bestimmen, wie oft eine Textur gekachelt werden kann.

Wenn Texturkoordinaten direkt in einen Pixel-Shader gelesen werden (mithilfe von Texcoord oder Texcrd), hängt der Texturkoordinatenbereich von der Anweisung und der Pixelshaderversion ab.

Vertex-Shaderregister