Partager via


Fonction D3DXMatrixShadow (D3dx9math.h)

Notes

La bibliothèque d’utilitaireS D3DX est déconseillée. Nous vous recommandons d’utiliser DirectXMath à la place.

Génère une matrice qui aplatit la géométrie dans un plan.

Syntaxe

D3DXMATRIX* D3DXMatrixShadow(
  _Inout_       D3DXMATRIX  *pOut,
  _In_    const D3DXVECTOR4 *pLight,
  _In_    const D3DXPLANE   *pPlane
);

Paramètres

pOut [in, out]

Type : D3DXMATRIX*

Pointeur vers la structure D3DXMATRIX qui est le résultat de l’opération.

pLight [in]

Type : const D3DXVECTOR4*

Pointeur vers une structure D3DXVECTOR4 décrivant la position de la lumière.

pPlane [in]

Type : const D3DXPLANE*

Pointeur vers la structure D3DXPLANE source.

Valeur retournée

Type : D3DXMATRIX*

Pointeur vers une structure D3DXMATRIX qui aplatit la géométrie dans un plan.

Notes

La fonction D3DXMatrixShadow aplatit la géométrie dans un plan, comme si elle projettait une ombre à partir d’une lumière.

La valeur de retour de cette fonction est la même valeur retournée dans le paramètre pOut . De cette façon, la fonction D3DXMatrixShadow peut être utilisée comme paramètre pour une autre fonction.

Cette fonction utilise la formule suivante pour calculer la matrice retournée.

P = normalize(Plane);
L = Light;
d = -dot(P, L)

P.a * L.x + d  P.a * L.y      P.a * L.z      P.a * L.w  
P.b * L.x      P.b * L.y + d  P.b * L.z      P.b * L.w  
P.c * L.x      P.c * L.y      P.c * L.z + d  P.c * L.w  
P.d * L.x      P.d * L.y      P.d * L.z      P.d * L.w + d

Si le composant w de la lumière est 0, le rayon de l’origine à la lumière représente une lumière directionnelle. S’il est 1, la lumière est une lumière de point.

Spécifications

Condition requise Valeur
En-tête
D3dx9math.h
Bibliothèque
D3dx9.lib

Voir aussi

Fonctions mathématiques