ピクセル シェーダー ソース レジスタ修飾子

ソース レジスタ修飾子を使用して、命令を実行する前にレジスタから読み取った値を変更します。 ソース レジスタの内容は変更されません。 修飾子は、命令に備えてレジスタ データの範囲を調整するのに役立ちます。 セレクターと呼ばれる修飾子のセットは、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 - psm3x4 - psm4x3 - 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 修飾子を使用できる定数浮動小数点レジスタはありません。

ピクセル シェーダー レジスタ修飾子