Transformações do espaço da câmera (Direct3D 9)
Os vértices no espaço da câmera são calculados transformando os vértices do objeto com a matriz de visão do mundo.
V = V * wvMatrix
Os normais de vértice, no espaço da câmera, são calculados transformando os normais do objeto com a transposição inversa da matriz de visão de mundo. A matriz de visão de mundo pode ou não ser ortogonal.
N = N * (wvMatrix⁻¹)T
A inversão da matriz e a transposição da matriz operam em uma matriz 4x4. A multiplicação combina o normal com a porção 3x3 da matriz 4x4 resultante.
Se o estado de renderização, D3DRENDERSTATE_NORMALIZENORMALS estiver definido como TRUE, os vetores normais de vértice serão normalizados após a transformação para o espaço da câmera da seguinte maneira:
N = norma(N)
A posição da luz no espaço da câmara é calculada transformando a posição da fonte de luz com a matriz de visão.
Lp = Lp * vMatrix
A direção para a luz no espaço da câmera para uma luz direcional é calculada multiplicando a direção da fonte de luz pela matriz de visão, normalizando e negando o resultado.
Ldir = -norm(Ldir * wvMatrix)
Para o D3DLIGHT_POINT e D3DLIGHT_SPOT a direção para a luz é calculada da seguinte forma:
Ldir = norm(V * Lp), onde os parâmetros são definidos na tabela a seguir.
Parâmetro | Valor padrão | Tipo | Descrição |
---|---|---|---|
Ldir | N/A | D3DVECTOR | Vetor de direção do vértice do objeto para a luz |
V | N/A | D3DVECTOR | Posição do vértice no espaço da câmara |
wvMatrix | Identidade | D3DMATRIX | Matriz composta contendo as transformações do mundo e da visão |
N | N/A | D3DVECTOR | Vertex normal |
Lp | N/A | D3DVECTOR | Posição da luz no espaço da câmara |
vMatriz | Identidade | D3DMATRIX | Matriz que contém a transformação de exibição |
Tópicos relacionados