カメラの空間変換Camera space transformations

カメラ空間内の頂点は、ワールド ビュー マトリックスによってオブジェクト頂点を変換することにより計算されます。Vertices in the camera space are computed by transforming the object vertices with the world view matrix.

V = V * wvMatrixV = V * wvMatrix

カメラ空間内の頂点の法線は、オブジェクトの法線をワールド ビュー行列の逆転置行列で変換することによって計算します。Vertex normals, in camera space, are computed by transforming the object normals with the inverse transpose of the world view matrix. ワールド ビュー行列は、正射影である場合とそうでない場合があります。The world view matrix may or may not be orthogonal.

N = N * (wvMatrix⁻¹)TN = N * (wvMatrix⁻¹)T

行列の逆変換と転置では、4 × 4 の行列を操作します。The matrix inversion and matrix transpose operate on a 4x4 matrix. 乗算は、その結果得られる 4 × 4 行列の 3 × 3 部分と、法線とを結合します。The multiply combines the normal with the 3x3 portion of the resulting 4x4 matrix.

レンダリングの状態が法線の正規化に設定されている場合、頂点法線ベクトルはカメラ空間への変換の後、次のように正規化されます。If the render state is set to normalize normals, vertex normal vectors are normalized after transformation to camera space as follows:

N = norm(N)N = norm(N)

カメラ空間でのライトの位置は、光源の位置をビュー行列で変換することによって計算します。Light position in camera space is computed by transforming the light source position with the view matrix.

Lₚ = Lₚ * vMatrixLₚ = Lₚ * vMatrix

指向性ライトの場合、カメラ空間でのライトへの方向は、光源の方向をビュー行列で乗算し、その結果を正規化して正負を反転することによって計算します。The direction to the light in camera space for a directional light is computed by multiplying the light source direction by the view matrix, normalizing, and negating the result.

Ldir = - norm (Ldir * wvMatrix)Ldir = -norm(Ldir * wvMatrix)

ポイント ライトとスポット ライトの場合は、ライトへの方向は次のように計算します。For a point light and a spotlight, the direction to light is computed as follows:

Ldir = norm (V * Lₚ)、パラメーターが次の表に定義されます。Ldir = norm(V * Lₚ), where the parameters are defined in the following table.

パラメーターParameter 既定値Default value 種類Type 説明Description
LdirLdir なしN/A 3D ベクトル (x、y、z 浮動小数点値)3D vector (x, y, and z floating-point values) オブジェクトの頂点からライトへの方向ベクトルDirection vector from object vertex to the light
VV なしN/A 3D ベクトル (x、y、z 浮動小数点値)3D vector (x, y, and z floating-point values) カメラ空間での頂点の位置Vertex position in camera space
wvMatrixwvMatrix 同一。Identity 浮動小数点値の 4 x 4 マトリックス4x4 matrix of floating-point values ワールドとビューの変換を含む合成行列Composite matrix containing the world and view transforms
NN なしN/A 3D ベクトル (x、y、z 浮動小数点値)3D vector (x, y, and z floating-point values) 頂点法線Vertex normal
LₚLₚ なしN/A 3D ベクトル (x、y、z 浮動小数点値)3D vector (x, y, and z floating-point values) カメラ空間でのライトの位置Light position in camera space
vMatrixvMatrix 同一。Identity 浮動小数点値の 4 x 4 マトリックス4x4 matrix of floating-point values ビュー変換を含む行列Matrix containing the view transform

 

関連トピックRelated topics

照明の計算Mathematics of lighting