Condividi tramite


Trasformazioni dello spazio della fotocamera (Direct3D 9)

I vertici nello spazio della fotocamera vengono calcolati trasformando i vertici dell'oggetto con la matrice di visualizzazione globale.

V = V * wvMatrix

Le normali dei vertici, nello spazio della fotocamera, vengono calcolate trasformando le normali dell'oggetto con la trasposizione inversa della matrice di visualizzazione globale. La matrice di visualizzazione globale può essere o meno ortogonale.

N = N * (wvMatrix⁻¹)T

L'inversione della matrice e la trasposizione della matrice operano su una matrice 4x4. La moltiplicazione combina la normale con la parte 3x3 della matrice 4x4 risultante.

Se lo stato di rendering, D3DRENDERSTATE_NORMALIZENORMALS è impostato su TRUE, i vettori normali dei vertici vengono normalizzati dopo la trasformazione nello spazio della fotocamera come indicato di seguito:

N = norm(N)

La posizione della luce nello spazio della fotocamera viene calcolata trasformando la posizione della sorgente di luce con la matrice di visualizzazione.

Lp = Lp * vMatrix

La direzione della luce nello spazio della fotocamera per una luce direzionale viene calcolata moltiplicando la direzione della sorgente di luce per la matrice di visualizzazione, la normalizzazione e la negazione del risultato.

Ldir = -norm(Ldir * wvMatrix)

Per il D3DLIGHT_POINT e D3DLIGHT_SPOT la direzione della luce viene calcolata come segue:

Ldir = norm(V * Lp), dove i parametri sono definiti nella tabella seguente.

Parametro Valore predefinito Tipo Descrizione
Ldir N/D D3DVECTOR Vettore di direzione dal vertice dell'oggetto alla luce
V N/D D3DVECTOR Posizione dei vertici nello spazio della fotocamera
wvMatrix Identità D3DMATRIX Matrice composita contenente le trasformazioni del mondo e della visualizzazione
N N/D D3DVECTOR Normale vertice
Lp N/D D3DVECTOR Posizione della luce nello spazio della fotocamera
vMatrix Identità D3DMATRIX Matrice contenente la trasformazione della visualizzazione

 

Matematica dell'illuminazione