次の方法で共有


カメラ空間変換 (Direct3D 9)

カメラ空間内の頂点は、ワールド ビュー マトリックスを使用してオブジェクトの頂点を変換することによって計算されます。

V = V * wvMatrix

カメラ空間の頂点法線は、ワールド ビュー 行列の逆転置を使用してオブジェクト法線を変換することによって計算されます。 ワールド ビュー マトリックスは、直交している場合とそうでない場合があります。

N = N * (wvMatrix⁻¹)T

行列反転と行列転置は、4x4 行列で動作します。 乗算は、法線と、結果として得られる 4x4 行列の 3 x 3 部分を結合します。

レンダリング状態D3DRENDERSTATE_NORMALIZENORMALSが TRUE に設定されている場合、頂点法線ベクトルはカメラ空間への変換後に次のように正規化されます。

N = norm(N)

カメラ空間内の光の位置は、ビュー マトリックスを使用して光源の位置を変換することによって計算されます。

Lp = Lp * vMatrix

方向光のカメラ空間内のライトへの方向は、光源の方向にビュー マトリックスを乗算し、正規化し、結果を否定することによって計算されます。

Ldir = -norm(Ldir * wvMatrix)

D3DLIGHT_POINTとD3DLIGHT_SPOTの場合、光の方向は次のように計算されます。

Ldir = norm(V * Lp) です。パラメーターは次の表で定義されています。

パラメーター 既定値 種類 形容
Ldir N/A D3DVECTOR オブジェクト頂点からライトへの方向ベクトル
V N/A D3DVECTOR カメラ空間での頂点の位置
wvMatrix 同一性 D3DMATRIX ワールド変換とビュー変換を含む複合マトリックス
N N/A D3DVECTOR 頂点法線
Lp N/A D3DVECTOR カメラ空間でのライト位置
vMatrix 同一性 D3DMATRIX ビュー変換を含むマトリックス

 

照明 数学