Partager via


Fonction D3DXFresnelTerm (D3DX10Math.h)

Notes

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

Calculez le terme de Fresnel.

Syntaxe

FLOAT D3DXFresnelTerm(
  _In_ FLOAT CosTheta,
  _In_ FLOAT RefractionIndex
);

Paramètres

CosTheta [in]

Type : FLOAT

Elle doit être comprise entre 0 et 1.

RefractionIndex [in]

Type : FLOAT

Index de réfraction d’un matériau. La valeur doit être supérieure à 1.

Valeur retournée

Type : FLOAT

Cette fonction retourne le terme Fresnel pour la lumière nonpolaire. CosTheta est le cosinus de l’angle d’incident.

Notes

Pour trouver le terme Fresnel (F) :

Si A est l’angle d’incidence et B l’angle de la réfraction, alors

F = 0.5 * [tan2(A - B) / tan2(A + B) + sin2(A - B) / sin2(A + B)]
  = 0.5 * sin2(A - B) / sin2(A + B) * [cos2(A + B) / cos2(A - B) + 1]

Let r   = sina(A) / sin(B)      (the relative refractive index)
Let c   = cos(A)
Let g   = (r2 + c2 - 1)1/2

Ensuite, en développant à l’aide des identités trig et en simplifiant, vous obtenez :

F = 0.5 * (g + c)2 / (g - c)2 * ([c(g + c) - 1]2 / [c(g - c) + 1]2 + 1)

Spécifications

Condition requise Valeur
En-tête
D3DX10Math.h
Bibliothèque
D3DX10.lib

Voir aussi

Fonctions mathématiques