Pixelshader-Quellregistermodifizierer

Verwenden Sie Quellregistermodifizierer, um den aus einem Register gelesenen Wert zu ändern, bevor eine Anweisung ausgeführt wird. Der Inhalt eines Quellregisters bleibt unverändert. Modifizierer sind nützlich, um den Bereich der Registerdaten zur Vorbereitung der Anweisung anzupassen. Eine Reihe von Modifizierern, die als Selektoren bezeichnet werden, kopiert oder repliziert die Daten aus einem einzelnen Kanal (r,g,b,a) in die anderen Kanäle.

ps_1_1 - ps_1_4

In dieser Tabelle werden die Versionen angegeben, die die einzelnen Modifizierer unterstützen:

Modifizierer des Quellregisters 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-Modifizierer register_d* X X X X
Quellregister-Swizzling register.xyzw X X X X

 

Quellregistermodifizierer können nur für arithmetische Anweisungen verwendet werden. Sie können nicht für Texturadressenanweisungen verwendet werden. Die Ausnahme ist der Modifizierer "Skalierung um 2 ". Für Version 1_1 kann die signierte Skalierung für das Quellargument einer beliebigen texm*-Anweisung verwendet werden. Für Version 1_2 oder 1_3 kann die signierte Skalierung für das Quellargument einer beliebigen Texturadressanweisung verwendet werden.

Einige modifiziererspezifische Einschränkungen:

  • Neggate kann entweder mit dem Bias-Modifizierer, der signierten Skalierung oder dem Scalex2-Modifizierer kombiniert werden. In Kombination wird neggate zuletzt ausgeführt.
  • Invert kann nicht mit einem anderen Modifizierer kombiniert werden.
  • Invert, Neggate, Bias, Signed Scaling und scalex2 können mit jedem der Selektoren kombiniert werden.
  • Quellregistermodifizierer sollten nicht für Konstantenregister verwendet werden, da sie zu nicht definierten Ergebnissen führen. Für Version 1_4 sind Modifizierer für Konstanten nicht zulässig und schlagen bei der Überprüfung fehl.

ps_2_0 und höher

Für Version ps_2_0 und höher wurde die Anzahl der Modifizierer vereinfacht.

Negate

Negieren Sie den Inhalt des Quellregisters.

Komponentenmodifizierer BESCHREIBUNG
-R Quellver negation

 

Der Negationsmodifizierer kann nicht für das zweite Quellregister dieser Anweisungen verwendet werden: m3x2 - ps, m3x3 - ps, m3x4 - ps, m4x3 - ps und m4x4 - ps.

Pixelshaderversionen 2_0 2_x 2_sw 3_0 3_sw
- x x x x x

 

Absoluter Wert

Nehmen Sie den absoluten Wert des Registers.

Pixelshaderversionen 2_0 2_x 2_sw 3_0 3_sw
abs x x

 

Wenn ein Shader der Version 3 aus einem oder mehreren konstanten Gleitkommaregistern (c#) liest, muss eines der folgenden Werte erfüllt sein.

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

Pixelshader-Registermodifizierer