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 |
|
Bibliothèque |
|
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour