Platform SDK: DirectX

バンプ マッピングの公式

[C++]

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' の計算後、システムでは、これらの値を次のテクスチャ ステージのテクスチャ座標に追加し、選択されている色の輝度を調整して、ポリゴンに適用する色を生成する。

[Visual Basic]

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

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

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

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

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