Microsoft DirectX 8.0 (Visual Basic)

引数修飾子

Direct3DX ピクセル シェーダ アセンブラは、命令引数 (オペランド) および命令で処理される前の入力引数に影響する修正子フラグを取ることができる。入力引数修飾子には 2 つのタイプがある。色およびアルファ ブレンディング入力引数修飾子とテクスチャ アドレッシング入力引数修飾子である。

入力引数修飾子は、次の表で定義されている。rn. は入力引数 (レジスタ) である。

命令 構文 説明
アルファ複製 rn.a アルファ チャネルをすべての色に複製する。
補数 1-rn 補数を計算する (y = 1.0 - x)。符号なし x が必要。
正負の反転 -rn 値の正負を反転する (y = -x)。符号付き x が必要。
バイアス rn_bias 値を ス 下にシフトする。y = (x-0.5)。
符号化スケーリング rn_bx2 値を下にシフトし、データを 2 倍にスケーリングする。y = 2*(x-0.5)。

たとえば、lrp 命令は、入力引数修飾子を使って実装できる。

; ディフューズ アルファを使って、r0 と t0 ブレンドすると、
lrp r0, v0.a, r0, t0
; (より多くのクロックを使って) 次のように書き込むことができる。
sub r0, r0, t0
mad r0, t0, v0.a, r0

頂点シェーダとは異なり、ピクセル シェーダは成分の入れ換えをサポートしていない。x、y、および z の各要素はまとめて RGB 色成分として扱われて、w 要素は個別に転送できるアルファとして扱われる。