Partager via


Transformations de l’espace de caméra (Direct3D 9)

Les sommets dans l’espace caméra sont calculés en transformant les sommets d’objet avec la matrice d’affichage du monde.

V = V * wvMatrix

Les normales de vertex, dans l’espace de la caméra, sont calculées en transformant les normales d’objet avec la transpose inverse de la matrice de vue du monde. La matrice de vue du monde peut ou non être orthogonale.

N = N * (wvMatrix⁻¹)T

L’inversion de matrice et la transpose de matrice fonctionnent sur une matrice 4x4. La multiplication combine la normale avec la partie 3x3 de la matrice 4x4 résultante.

Si l’état de rendu, D3DRENDERSTATE_NORMALIZENORMALS est défini sur TRUE, les vecteurs normaux de vertex sont normalisés après la transformation en espace de caméra comme suit :

N = norm(N)

La position de la lumière dans l’espace de la caméra est calculée en transformant la position de la source de lumière avec la matrice de vue.

Lp = Lp * vMatrix

La direction de la lumière dans l’espace de la caméra pour une lumière directionnelle est calculée en multipliant la direction de la source de lumière par la matrice de vue, en normalisant et en annulant le résultat.

Ldir = -norm(Ldir * wvMatrix)

Pour les D3DLIGHT_POINT et D3DLIGHT_SPOT la direction vers la lumière est calculée comme suit :

Ldir = norm(V * Lp), où les paramètres sont définis dans le tableau suivant.

Paramètre Valeur par défaut Type Description
Ldir N/A D3DVECTOR Vecteur de direction du vertex de l’objet vers la lumière
V N/A D3DVECTOR Position du vertex dans l’espace de la caméra
wvMatrix Identité D3DMATRIX Matrice composite contenant les transformations du monde et de la vue
N N/A D3DVECTOR Vertex normal
Lp N/A D3DVECTOR Position de la lumière dans l’espace de la caméra
vMatrix Identité D3DMATRIX Matrice contenant la transformation de vue

 

Mathématiques de l’éclairage