Microsoft DirectX 8.0 (C++) |
前のステージでサンプリングされた色を、輝度情報付きの DuDvL 摂動データとして使用する。
texbeml 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 である。
この命令は、このテクスチャ ステージに対応する割り当て済みのテクスチャである無名の入力を取ることに注意すること。