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.
Zugehörige Themen