Transformaciones de espacio de cámara (Direct3D 9)
Los vértices del espacio de la cámara se calculan mediante la transformación de los vértices de objeto con la matriz de vista mundial.
V = V * wvMatrix
Los normales de vértice, en el espacio de la cámara, se calculan mediante la transformación de los normales de objeto con la transposición inversa de la matriz de vista mundial. La matriz de vista mundial puede o no ser ortogonal.
N = N * (wvMatrix⁻¹)T
La inversión de matriz y la transposición de matriz funcionan en una matriz de 4x4. La multiplicación combina la normal con la parte 3x3 de la matriz 4x4 resultante.
Si el estado de representación, D3DRENDERSTATE_NORMALIZENORMALS se establece en TRUE, los vectores normales de vértice se normalizan después de la transformación en el espacio de la cámara de la siguiente manera:
N = norm(N)
La posición de la luz en el espacio de la cámara se calcula mediante la transformación de la posición de la fuente de luz con la matriz de vista.
Lp = Lp * vMatrix
La dirección a la luz en el espacio de la cámara para una luz direccional se calcula multiplicando la dirección de la fuente de luz por la matriz de vista, normalizando y negando el resultado.
Ldir = -norm(Ldir * wvMatrix)
Para la D3DLIGHT_POINT y D3DLIGHT_SPOT la dirección a la luz se calcula de la siguiente manera:
Ldir = norm(V * Lp), donde los parámetros se definen en la tabla siguiente.
Parámetro | Valor predeterminado | Tipo | Descripción |
---|---|---|---|
Ldir | N/D | D3DVECTOR | Vector de dirección del vértice del objeto a la luz |
V | N/D | D3DVECTOR | Posición del vértice en el espacio de la cámara |
wvMatrix | Identidad | D3DMATRIX | Matriz compuesta que contiene las transformaciones de mundo y vista |
N | N/D | D3DVECTOR | Vértice normal |
Lp | N/D | D3DVECTOR | Posición de luz en el espacio de la cámara |
vMatrix | Identidad | D3DMATRIX | Matriz que contiene la transformación de vista |
Temas relacionados