Ausgaberegister
- Vertexfarbregister
- Nebelregister
- Position_Register
- Point_Size_Register
- Texture_Coordinate_Register
Den Registernamen wird ein Kleinbuchstabe 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 Pixelshaders geschrieben. Der oD1-Wert wird interpoliert und in das Eingabefarbregister 1 (v1) des Pixelshaders geschrieben. Weitere Informationen zu Pixelshaderfarbregistern finden Sie unter Register.
Vertexshaderversionen | 1_1 | 2_0 | 2_sw | 2_x | 3_0 | 3_sw |
---|---|---|---|---|---|---|
Vertexfarbregister | x | x | x | x |
Nebelregister – oFog
Der Ausgabenebelwert wird registriert. Der Wert ist der Nebelfaktor, der interpoliert und dann an die Nebeltabelle weitergeleitet werden soll. Es wird nur die skalare x-Komponente des Nebels verwendet. Werte werden zwischen 0 und 1 eingeklemmt, bevor sie an den Rasterizer übergeben werden.
Vertexshaderversionen | 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 Beschneidungsraum. Dieser Wert muss vom Vertex-Shader geschrieben werden.
Vertexshaderversionen | 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.
Vertexshaderversionen | 1_1 | 2_0 | 2_sw | 2_x | 3_0 | 3_sw |
---|---|---|---|---|---|---|
Punktgrößenregister | x | x | x | x |
Texturkoordinatenregister – oT0 bis oT7
Die Ausgabetexturkoordinaten werden registriert. Insbesondere handelt es sich dabei um ein Array von Ausgabedatenregistern, die durchlaufen und als Texturkoordinaten von den Textursamplingphasen verwendet werden, die Daten an den Pixelshader weiterleiten.
Vertexshaderversionen | 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 Kacheltexturen verwenden, weisen häufig Texturkoordinaten im Bereich [0,1] auf. Objekte, die kachelfarbene Texturen verwenden, z. B. Gelände, weisen in der Regel Texturkoordinaten auf, die von [-?,+?] liegen. Wo? kann eine große Gleitkommazahl sein.
Die Texturkoordinateninterpolation wird für Vertexdaten zur Rasterisierung ausgefü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 Pixelshader gelesen werden (mit texcoord oder texcrd), hängt der Texturkoordinatenbereich von der Anweisung und der Pixelshaderversion ab.
Zugehörige Themen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für