Microsoft DirectX 8.0 (C++)

符号化スケーリング

rn_bx2

色およびアルファ ブレンディング命令と共に使用する場合、この修飾子は、命令が実行される前に、各チャネルから 0.3 を減算し、その結果を 2.0 倍にスケーリングする。つまり、y = (x-0.5)*2 を実行する。

次の例は、この修飾子の使い方を示している。

dp3_sat r0, t1_bx2, v0_bx2    ; ディフューズ色 v0 にライト方向、
                              ; TL にバンプ法線を仮定した、パーピクセル
                              ; ライティング / バンプ マッピング

この修飾子は、0 から 1 までの範囲にあるデータを再マッピングして、-1 から 1 までの範囲にある符号付きデータにする。これにより、以降のデータ処理では実装の完全な符号付き動的範囲を使用できる。

この修飾子は、一般的に、内積命令 (dp3) への入力について使用される。

この修飾子は補数と相互に排他的であるため、同じレジスタに適用することはできない。

テクスチャ レジスタ宣言に対する入力引数では _bx2 修飾子をサポートしており、dp3texm3x2tex、および texm3x3tex 処理の宣言/命令の実行中に行う追加の処理を指定できる。その他のテクスチャ アドレッシング演算子は、_bx2 入力引数修飾子をサポートしていない。

入力レジスタ引数を使用する前にバイアスおよびスケーリングの処理が必要があることを指定するには、入力レジスタ引数に _bx2 を追加する。

tex t0            ; テクスチャ カラーを読み込む。
dp3 t1, t0_bx2    ; このステージのテクスチャ座標で内積を計算する。

これは、入力レジスタを指定された演算子で使用する前に、入力レジスタに対して演算 y = 2(x - 0.5) を実行する。この演算は一般的に、-1 〜 1 の範囲にある符号付きの値を含むように意図されているデータを平行移動するために使用されるが、ソースがこの演算をサポートできないので、実行しない。このようなデータ ソースには、テクスチャ (tn)、補間色 (vn)、テクスチャ座標、または固定要素レジスタ (cn) がある。

この修飾子は、色およびアルファ ブレンディング命令と、テクスチャ アドレッシング命令の両方で使用するためのものである。