Partager via


Transformations spatiales de caméra (Direct3D 9)

Les sommets dans l’espace caméra sont calculés en transformant les sommets d’objet avec la matrice de vue mondiale.

V = V * wvMatrix

Les normales de vertex, dans l’espace de caméra, sont calculées en transformant les normales de l’objet avec la transpose inverse de la matrice de vue mondiale. La matrice de vue mondiale 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 la 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 vers 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, la normalisation et la négation du résultat.

Ldir = -norm(Ldir * wvMatrix)

Pour les D3DLIGHT_POINT et D3DLIGHT_SPOT la direction de 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 sommet d’objet vers la lumière
V N/A D3DVECTOR Position de vertex dans l’espace de la caméra
wvMatrix Identité D3DMATRIX Matrice composite contenant le monde et les transformations d’affichage
N N/A D3DVECTOR Normale vertex
Microsillon N/A D3DVECTOR Position lumineuse dans l’espace de l’appareil photo
vMatrix Identité D3DMATRIX Matrice contenant la transformation d’affichage

 

Mathématiques de l’éclairage