Microsoft DirectX 8.0 (Visual Basic)

texbeml

前のステージでサンプリングされた色を、輝度情報付きの DuDvL 摂動データとして使用する。

texbeml   tDest, tSrc0

レジスタ

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

注意

texbeml 命令は、色の赤成分と緑成分を 2D バンプ環境マッピング行列でトランスフォームし、その成分を現在のステージのテクスチャ座標に追加し、作成された 2D アドレスでこのテクスチャをサンプリングする。次に、輝度 (L) および Microsoft® Direct3D® API 指定の輝度とバイアス テクスチャ ステージの値を使って、輝度修正を適用する。

次のピクセル シェーダでは、デスティネーション レジスタに設定される色は、ステージ 1 で設定されたテクスチャ マップから取得されて、赤チャネルと緑チャネルの値で補正されたアドレスによってインデックス付けされて、ステージ 0 で設定されたマップからサンプリングされた色として定義される。

tex     t0        ; 3 要素 DuDvL を取得するため t0 を定義
texbeml 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        ; 最終結果を出力色にコピー

テクスチャは 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 である。

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