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.