Microsoft DirectX 8.0 (C++)

cnd

r0.a の値を 0.5 と比較する条件演算を実行する。

cnd   tDest, tSrc0, tSrc1, tSrc2

レジスタ

tDest
処理の結果を保持するデスティネーション レジスタ。
tSrc0
入力引数を指定するソース レジスタ。
tSrc1
入力引数を指定するソース レジスタ。
tSrc2
入力引数を指定するソース レジスタ。

注意

この命令は、r0.a の値と 0.5 を比較するためにのみ使用できる。アルファ (r0.a) が 0.5 よりも大きい場合、最初のソースが結果として返される。それ以外の場合は、2 番目のソースが返される。

次の例は、この命令の使い方を示している。

cnd d, r0.a, s1, s2    ; d = ( r0.a >0.5 ? s1 : s2 )

a - (b - 0.5) = a - b + 0.5 なので、2 つの値を比較するには、次のピクセル シェーダ コードを使用できる。

sub r0, v0,   v1_bias
cnd r0, r0.a, c0, c1

前に説明したように、最初のソース引数に配置できる値は r0.a だけであり、比較値は "0.5 よりも大きく" なければならない。