Transformaciones del espacio de cámaraCamera space transformations

Los vértices del espacio de cámara se calculan al transformar los vértices del objeto con la matriz de vista global.Vertices in the camera space are computed by transforming the object vertices with the world view matrix.

V = V * wvMatrixV = V * wvMatrix

Para calcular las normales de los vértices, en el espacio de cámara, se transforman las normales de los objetos con la traspuesta inversa de la matriz de vista global.Vertex normals, in camera space, are computed by transforming the object normals with the inverse transpose of the world view matrix. La matriz de vista global puede ser ortogonal o no.The world view matrix may or may not be orthogonal.

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

La inversión de la matriz y la traspuesta de la matriz funcionan en una matriz de 4×4.The matrix inversion and matrix transpose operate on a 4x4 matrix. La multiplicación combina la normal con la porción de 3×3 de la matriz resultante de 4×4.The multiply combines the normal with the 3x3 portion of the resulting 4x4 matrix.

Si el estado de representación se establece para normalizar las normales, los vectores de las normales de los vértices se normalizan tras la transformación al espacio de cámara del modo siguiente: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)

Para calcular la posición de la luz en el espacio de cámara, se transforma la posición del origen de luz con la matriz de vista.Light position in camera space is computed by transforming the light source position with the view matrix.

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

La dirección a la luz en el espacio de cámara para una luz direccional se calcula multiplicando la dirección del origen de luz por la matriz de vista, normalizando y haciendo negativo el resultado.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)

Para una luz puntual y un foco de luz, la dirección a la luz se calcula como sigue:For a point light and a spotlight, the direction to light is computed as follows:

Ldir = normal (V * Lₚ), donde los parámetros se definen en la tabla siguiente.Ldir = norm(V * Lₚ), where the parameters are defined in the following table.

ParámetroParameter Valor predeterminadoDefault value TipoType DescripciónDescription
LdirLdir N/DN/A Vector 3D (valores de punto flotante x, y, z)3D vector (x, y, and z floating-point values) Vector de dirección de los vértices del objeto a la luzDirection vector from object vertex to the light
VV N/DN/A Vector 3D (valores de punto flotante x, y, z)3D vector (x, y, and z floating-point values) Posición del vértice en el espacio de cámaraVertex position in camera space
wvMatrixwvMatrix IdentidadIdentity Matriz de 4×4 de valores de punto flotante4x4 matrix of floating-point values Matriz compuesto que contiene las transformaciones global y de vistaComposite matrix containing the world and view transforms
NN N/DN/A Vector 3D (valores de punto flotante x, y, z)3D vector (x, y, and z floating-point values) Normal del vérticeVertex normal
LₚLₚ N/DN/A Vector 3D (valores de punto flotante x, y, z)3D vector (x, y, and z floating-point values) Posición de la luz en el espacio de cámaraLight position in camera space
vMatrixvMatrix IdentidadIdentity Matriz de 4×4 de valores de punto flotante4x4 matrix of floating-point values Matriz que contiene la transformación de vistaMatrix containing the view transform

 

Temas relacionadosRelated topics

Matemáticas de iluminaciónMathematics of lighting