命令を実行する前に、ソース レジスタ修飾子を使用してレジスタから読み取られた値を変更します。 ソース レジスタの内容は変更されません。 修飾子は、命令の準備でレジスタ データの範囲を調整するのに役立ちます。 セレクターと呼ばれる一連の修飾子は、1 つのチャネル (r,g,b,a) から他のチャネルにデータをコピーまたはレプリケートします。
ps_1_1 - ps_1_4
次の表は、各修飾子をサポートするバージョンを示しています。
ソース レジスタ修飾子 | 構文 | バージョン 1_1 | バージョン 1_2 | バージョン 1_3 | バージョン 1_4 |
---|---|---|---|---|---|
バイアス | register_bias | X | X | X | X |
反転 | 1 - 登録 | X | X | X | X |
を否定する | -登録する | X | X | X | X |
スケール 2 | register_x2 | X | |||
署名付きスケーリング を する | register_bx2 | X | X | X | X |
texld および texcrd 修飾子 | register_d* | X | X | X | X |
ソース レジスタのスウィズリング を する | register.xyzw | X | X | X | X |
ソース レジスタ修飾子は、算術命令でのみ使用できます。 テクスチャ アドレス命令では使用できません。 これに対する例外は、2 修飾子による スケールです。 バージョン 1_1 では、任意の texm* 命令のソース引数で符号付きスケールを使用できます。 バージョン 1_2 または 1_3 では、任意のテクスチャ アドレス命令のソース引数で符号付きスケールを使用できます。
いくつかの修飾子固有の制限:
- Negate は、バイアス、符号付きスケーリング、または scalex2 修飾子と組み合わせることができます。 結合すると、negate は最後に実行されます。
- 反転は、他の修飾子と組み合わせることはできません。
- 反転、否定、バイアス、符号付きスケーリング、scalex2 は、任意のセレクターと組み合わせることができます。
- ソース レジスタ修飾子は、未定義の結果を引き起こすので、定数レジスタでは使用しないでください。 バージョン 1_4 では、定数の修飾子は許可されず、検証に失敗します。
ps_2_0以降
バージョン ps_2_0 以降では、修飾子の数が簡略化されました。
打ち消す
ソース レジスタの内容を否定します。
コンポーネント修飾子 | 形容 |
---|---|
- r | ソース否定 |
negate 修飾子は、次の命令の 2 番目のソース レジスタでは使用できません。m3x2 - ps、m3x3 - ps、m3x4 - ps、m4x3 - ps、および m4x4 - ps。
ピクセル シェーダーのバージョン | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|
- | x | x | x | x | x |
絶対値
レジスタの絶対値を取得します。
ピクセル シェーダーのバージョン | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|
米国船級協会 | x | x |
バージョン 3 のシェーダーが 1 つ以上の定数浮動小数点レジスタ (c#) から読み取る場合、次のいずれかが true である必要があります。
- 定数浮動小数点レジスタはすべて、abs 修飾子を使用する必要があります。
- abs 修飾子を使用できる定数浮動小数点レジスタはありません。
関連トピック
-
ピクセル シェーダー レジスタ修飾子 を する