Pixel-Shader-Quellregister-Modifizierer

Verwenden Sie Quellregister-Modifizierer, um den Wert zu ändern, der aus einem Register gelesen wird, bevor eine Anweisung ausgeführt wird. Der Inhalt eines Quellregisters bleibt unverändert. Modifizierer sind nützlich zum Anpassen des Registerdatenbereichs bei der Vorbereitung der Anweisung. Eine Reihe von Modifizierern namens Selektoren kopiert oder repliziert die Daten aus einem einzigen Kanal (r,g,b,a) in die anderen Kanäle.

ps_1_1 - ps_1_4

Diese Tabelle identifiziert die Versionen, die jeden Modifizierer unterstützen:

Quellregister-Modifizierer Syntax Version 1_1 Version 1_2 Version 1_3 Version 1_4
Vorurteil register_bias X X X X
Invertieren 1 - Registrieren X X X X
negate - Registrieren X X X X
Skalierung um 2 register_x2 X
signierte Skalierung register_bx2 X X X X
texld und texcrd modifiers register_d* X X X X
Quellregister register.xyzw X X X X

 

Quellregister-Modifizierer können nur in arithmetischen Anweisungen verwendet werden. Sie können nicht in Texturadressenanweisungen verwendet werden. Die Ausnahme ist die Skalierung um 2 Modifizierer. Für Version 1_1 kann die signierte Skalierung auf dem Quellargument jeder texm*-Anweisung verwendet werden. Für Version 1_2 oder 1_3 kann die signierte Skalierung für das Quellargument einer beliebigen Texturadressenanweisung verwendet werden.

Einige modifiziererspezifische Einschränkungen:

  • Negate kann entweder mit der Verzerrung, der signierten Skalierung oder dem Scalex2-Modifizierer kombiniert werden. Bei kombinationen wird die Abwendung zuletzt ausgeführt.
  • Invert kann nicht mit einem anderen Modifizierer kombiniert werden.
  • Invertieren, Negate, Bias, signierte Skalierung und Scalex2 können mit einer der Selektoren kombiniert werden.
  • Quellregister-Modifizierer sollten nicht für Konstantenregister verwendet werden, da sie nicht definierte Ergebnisse verursachen. Bei Version 1_4 sind Modifizierer für Konstanten nicht zulässig und führen eine Überprüfung durch.

ps_2_0 und oben

Bei Version ps_2_0 und nach oben wurde die Anzahl der Modifizierer vereinfacht.

Negate

Verwerfen Sie den Inhalt des Quellregisters.

Komponentenmodifizierer Beschreibung
- r Quell-Negation

 

Der Negate-Modifizierer kann nicht im zweiten Quellregister dieser Anweisungen verwendet werden: m3x2 - ps, m3x3 - ps, m3x4 - ps, m4x3 - ps und m4x4 - ps.

Pixel-Shaderversionen 2_0 2_x 2_sw 3_0 3_sw
- x x x x x

 

Absoluter Wert

Nehmen Sie den absoluten Wert des Registers.

Pixel-Shaderversionen 2_0 2_x 2_sw 3_0 3_sw
abs x x

 

Wenn ein Beliebiger Version 3-Shader aus einem oder mehreren Konstanten float registers (c#) liest, muss eine der folgenden Werte true sein.

  • Alle konstanten Gleitkommaregister müssen den Abs-Modifizierer verwenden.
  • Keine der konstanten Gleitkommaregister kann den Abs-Modifizierer verwenden.

Pixel-Shader-Register-Modifizierer