Microsoft DirectX 8.0 (C++)

texbem

入力引数で定義されている色を、DuDv 摂動データとして使用する。

texbem   tDest, tSrc0

レジスタ

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

注意

texbem 命令は、u 成分と v 成分を 2D バンプ環境マッピング行列でトランスフォームし、それを現在のステージのテクスチャ座標に追加し、現在のステージのテクスチャをサンプリングする。

tex    t0        ; テクスチャからサンプルするよう t0 を定義
texbem t1, t0    ; u = u1 + mat00*r0.r + mat01*r0.g, と
                 ; v = v1 + mat10*r0.r + mat11*r0.g を計算
                 ; 次に u,v でサンプル、 r0.b は無視される
mov r0, t1       ; 最終結果を出力色にコピー

この処理は常に du および dv を符号付きの数値として解釈するので、入力引数について符号化スケーリング入力修飾子 (_bx2) を入力引数として指定する必要はない。テクスチャは 2 番目のステージで設定され、最初のステージで設定されたテクスチャは無視される。

この命令は、ピクセル単位の環境マッピングやディフューズ ライト (バンプ マッピング)、環境マッティングなど、アドレス補正に基づくさまざまな技法に使用できる。

この処理は 2 つの命令のマクロである (2 ステージ/スロットを消費する)。u' = u + du*M00 + dv*M01 および v' = v + du*M10 + dv*M11 で、M00、M01、M10、および M11 は D3DTSS_BUMPENVMAT00、D3DTSS_BUMPENVMAT01、D3DTSS_BUMPENVMAT10、および D3DTSS_BUMPENVMAT11 である。

この命令は、このテクスチャ ステージに対応する割り当て済みのテクスチャである無名の入力を取ることに注意すること。