カメラ空間変換 (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 | ビュー変換を含むマトリックス |
関連トピック
-
照明 の 数学