ピクセル シェーダー ソース レジスタ修飾子
ソース レジスタ修飾子を使用して、命令を実行する前にレジスタから読み取った値を変更します。 ソース レジスタの内容は変更されません。 修飾子は、命令に備えてレジスタ データの範囲を調整するのに役立ちます。 セレクターと呼ばれる修飾子のセットは、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 |
negate | -登録 | X | X | X | X |
2 によるスケーリング | register_x2 | X | |||
符号付きスケーリング | register_bx2 | X | X | X | X |
texld 修飾子と texcrd 修飾子 | register_d* | X | X | X | X |
source register swizzling | register.xyzw | X | X | X | X |
ソース レジスタ修飾子は、算術命令でのみ使用できます。 テクスチャ アドレス命令では使用できません。 これに対する例外は、 2 修飾子によるスケール です。 バージョン 1_1 では、任意の texm* 命令の source 引数で符号付きスケールを使用できます。 バージョン 1_2 または 1_3 では、任意のテクスチャ アドレス命令の source 引数で符号付きスケールを使用できます。
修飾子固有の制限事項:
- Negate は、バイアス、符号付きスケーリング、または scalex2 修飾子のいずれかと組み合わせることができます。 結合すると、negate は最後に実行されます。
- Invert を他の修飾子と組み合わせることはできません。
- 反転、否定、バイアス、符号付きスケーリング、scalex2 は、任意のセレクターと組み合わせることができます。
- ソース レジスタ修飾子は、未定義の結果を引き起こすので、定数レジスタでは使用しないでください。 バージョン 1_4 の場合、定数の修飾子は許可されず、検証に失敗します。
ps_2_0以降
バージョン ps_2_0 以降では、修飾子の数が簡略化されました。
Negate
ソース レジスタの内容を否定します。
コンポーネント修飾子 | 説明 |
---|---|
-R | ソース否定 |
negate 修飾子は、m3x2 - ps、m3x3 - ps、m3x4 - ps、m4x3 - ps、m4x4 - ps、および m4x4 - ps の手順の 2 番目のソース レジスタでは使用できません。
ピクセル シェーダーのバージョン | 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 |
---|---|---|---|---|---|
abs | x | x |
バージョン 3 のシェーダーが 1 つ以上の定数 float レジスタ (c#) から読み取る場合は、次のいずれかが true である必要があります。
- すべての定数浮動小数点レジスタで abs 修飾子を使用する必要があります。
- abs 修飾子を使用できる定数浮動小数点レジスタはありません。
関連トピック