Microsoft DirectX 8.0 (C++)

バンプ マッピングの公式

Microsoft® Direct3D® では、各バンプ マップ ピクセルの Du および Dv コンポーネントに次の公式を適用する。

この公式では、変数 Du および Dv はバンプ マップ ピクセルから直接取得され、出力デルタ値 Du' および Dv' を生成するために 2 × 2 行列でトランスフォームされる。システムでは、この出力値を使用して、次のテクスチャ ステージの環境マップを処理するテクスチャ座標を修正する。トランスフォーム行列の係数は、D3DTSS_BUMPENVMAT00D3DTSS_BUMPENVMAT10D3DTSS_BUMPENVMAT01、および D3DTSS_BUMPENVMAT11 テクスチャ ステージ ステートで設定する。

u および v デルタ値のほかにも、システムでは、次のブレンディング ステージの環境マップの色の乗算に使用する輝度を計算できる。

この公式では、L' は計算される出力輝度である。変数 L はバンプ マップ ピクセルから取得される輝度値であり、スケーリング係数 S で乗算され、変数 O の値でオフセットされる。D3DTSS_BUMPENVLSCALE および D3DTSS_BUMPENVLOFFSET テクスチャ ステージ ステートは、公式の変数 S および O の値を制御する。この公式が適用されるのは、バンプ マップを含むステージのテクスチャ ブレンディング処理が D3DTOP_BUMPENVMAPLUMINANCE に設定されている場合のみである。D3DTOP_BUMPENVMAP を使用するときは、L' の値に 1.0 が使用される。

出力デルタ値 Du' および Dv' の計算後、システムでは、これらの値を次のテクスチャ ステージのテクスチャ座標に追加し、選択されている色の輝度を乗算して、ポリゴンに適用する色を生成する。