Partager via


Fonction D3DXSHEvalSphericalLight (D3dx9math.h)

Évalue une lumière sphérique et retourne des données harmoniques sphériques spectrales (SH).

Notes

La bibliothèque utilitaire D3DX (D3DX 9, D3DX 10 et D3DX 11) est déconseillée et n’est pas prise en charge pour les applications du Windows Store.

Notes

Au lieu d’utiliser cette fonction, nous vous recommandons d’utiliser la fonction de bibliothèque Spherical Harmonics MathXMSHEvalSphericalLight.

Syntaxe

HRESULT D3DXSHEvalSphericalLight(
  _In_        UINT        Order,
  _In_  const D3DXVECTOR3 *pPos,
  _In_        FLOAT       Radius,
  _In_        FLOAT       RIntensity,
  _In_        FLOAT       GIntensity,
  _In_        FLOAT       BIntensity,
  _Out_       FLOAT       *pROut,
  _Out_       FLOAT       *pGOut,
  _Out_       FLOAT       *pBOut
);

Paramètres

Ordre [in]

Type : UINT

Ordre de l’évaluation sh. Doit être dans la plage de D3DXSH_MINORDER à D3DXSH_MAXORDER, inclusif. L’évaluation génère des coefficients Order². Le degré de l’évaluation est Order - 1.

pPos [in]

Type : const D3DXVECTOR3*

Pointeur vers la position lumineuse.

Radius [in]

Type : FLOAT

Rayon de la source de lumière sphérique.

RIntensity [in]

Type : FLOAT

Intensité rouge de la lumière.

GIntensity [in]

Type : FLOAT

Intensité verte de la lumière.

BIntensity [in]

Type : FLOAT

Intensité bleue de la lumière.

pROut [out]

Type : FLOAT*

Pointeur vers le vecteur SH de sortie pour le composant rouge.

pGOut [out]

Type : FLOAT*

Pointeur vers le vecteur SH de sortie pour le composant vert.

pBOut [out]

Type : FLOAT*

Pointeur vers le vecteur SH de sortie pour le composant bleu.

Valeur retournée

Type : HRESULT

Si la fonction réussit, la valeur de retour est D3D_OK. Si la fonction échoue, la valeur de retour peut être : D3DERR_INVALIDCALL.

Notes

Évalue une lumière sphérique et retourne des données sh spectrales. Il n’y a pas de normalisation de l’intensité de la lumière comme il y en a pour les feux directionnels. Il faut donc être prudent lors de la spécification des intensités. Cela permet de calculer trois échantillons spectrals ; pROut est retourné, tandis que pGOut et pBOut peuvent être retournés.

Sur la sphère avec un rayon unitaire, comme illustré dans l’illustration suivante, la direction peut être spécifiée simplement avec theta, l’angle de l’axe z dans le sens droitier, et phi, l’angle de z.

illustration d’une sphère avec rayon d’unité

Les équations suivantes montrent la relation entre les coordonnées cartésiennes (x, y, z) et sphériques (theta, phi) sur la sphère unitaire. L’angle de 0 à 2 pi varie sur la plage de 0 à 2 pi, tandis que le phi varie de 0 à pi.

équations de la relation entre les coordonnées cartésiennes et sphériques

Spécifications

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

Voir aussi

Fonctions mathématiques

Transfert de rayonnement précalculé (Direct3D 9)