Freigeben über


Ausgaberegister

  • Vertexfarbregister
  • Nebelregister
  • Position_Register
  • Point_Size_Register
  • Texture_Coordinate_Register

Registernamen werden einem Kleinbuchstaben o vorangestellt, der angibt, dass die Ausgaberegister schreibgeschützt sind.

Vertexfarbregister - oD0, oD1

oD0 ist das diffuse Farbregister. oD1 ist das Glanzfarbregister. Der oD0-Wert wird interpoliert und in das Eingabefarbregister 0 (v0) des Pixelshadrs geschrieben. Der oD1-Wert wird interpoliert und in das Eingabefarbregister 1 (v1) des Pixelshadrs geschrieben. Weitere Informationen zu Pixelshaderfarbregistern finden Sie unter Register.

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

 

Fog Register - oFog

Der Ausgabenebelwert wird registriert. Der Wert ist der zu interpolierte Nebelfaktor und wird dann an die Nebeltabelle weitergeleitet. Nur die skalare x-Komponente des Nebels wird verwendet. Werte werden zwischen Null und 1 geklemmt, 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

 

Positionsregister - oPos

Die Ausgabeposition wird registriert. Der Wert ist die Position im homogenen Schnittraum. 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 wird registriert. 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 zu oT7

Die Ausgabetextkoordinaten werden registriert. Insbesondere handelt es sich hierbei um ein Array von Ausgabedatenregistern, die durch die Textursamplingphasen als Texturkoordinaten verwendet werden, die Daten an den Pixelshader 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 Texturstufe aktiviert ist, müssen alle vier Gleitkommawerte in das entsprechende Texturregister geschrieben werden.

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

Texturkoordinatenbereich

Objektvertexdaten enthalten Eingabetextkoordinaten. Objekte, die keine nebeneinander angeordneten Texturen verwenden, weisen häufig Texturkoordinaten im Bereich [0,1] auf. Objekte, die nebeneinander angeordnete Texturen wie Gelände verwenden, weisen in der Regel Texturkoordinaten auf, die sich von [-?,+?] wo? kann eine große Gleitkommazahl sein.

Die Texturkoordinateninterpolation wird für Vertexdaten für die Rasterung ausgeführt. Während der Rasterung werden Texturkoordinaten zwischen Objektvertizes 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 nebeneinander angeordnet werden kann.

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

Vertex-Shader registriert