Compartilhar via


Transformações de espaço da câmera (Direct3D 9)

Os vértices no espaço da câmera são computados transformando os vértices de objeto com a matriz de exibição do mundo.

V = V * wvMatrix

Os normais de vértice, no espaço da câmera, são computados transformando os normais de objeto com a transposição inversa da matriz de exibição do mundo. A matriz de exibição do mundo pode ou não ser ortogonal.

N = N * (wvMatrix⁻¹)T

A inversão de matriz e o transpose de matriz operam em uma matriz 4x4. A multiplicação combina o normal com a parte 3x3 da matriz 4x4 resultante.

Se o estado de renderização, D3DRENDERSTATE_NORMALIZENORMALS estiver definido como VERDADEIRO, 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 = norm(N)

A posição da luz no espaço da câmera é computada transformando a posição da fonte de luz com a matriz de exibição.

Lp = Lp * vMatrix

A direção para a luz no espaço da câmera para uma luz direcional é computada multiplicando a direção da fonte de luz pela matriz de exibição, normalizando e negando o resultado.

Ldir = -norm(Ldir * wvMatrix)

Para o D3DLIGHT_POINT e D3DLIGHT_SPOT a direção para a luz é computada da seguinte maneira:

Ldir = norm(V * Lp), em que 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âmera
wvMatrix Identidade D3DMATRIX Matriz composta que contém o mundo e as transformações de exibição
N N/A D3DVECTOR Vértice normal
LP N/A D3DVECTOR Posição de luz no espaço da câmera
vMatrix Identidade D3DMATRIX Matriz que contém a transformação de exibição

 

Matemática da Iluminação