Fonction XMVector4Refract (directxmath.h)
Réfracte un vecteur 4D incident sur un vecteur normal 4D.
Syntaxe
XMVECTOR XM_CALLCONV XMVector4Refract(
[in] FXMVECTOR Incident,
[in] FXMVECTOR Normal,
[in] float RefractionIndex
) noexcept;
Paramètres
[in] Incident
Vecteur d’incident 4D à réfracter.
[in] Normal
Vecteur normal 4D pour réfracter le vecteur d’incident.
[in] RefractionIndex
Index de la réfraction. Consultez la section Remarques.
Valeur retournée
Retourne le vecteur d’incident réfracté. Si l’index de réfraction et l’angle entre le vecteur incident et la normale sont tels que le résultat est une réflexion interne totale, la fonction retourne un vecteur de la forme < 0.0f, 0.0f, 0.0f, 0.0f >.
Remarques
Le pseudocode suivant illustre le fonctionnement de la fonction :
XMVECTOR Result;
float t = dot(Incident, Normal);
float r = 1.0f - RefractionIndex * RefractionIndex * (1.0f - t * t);
if (r < 0.0f) // Total internal reflection
{
Result.x = 0.0f;
Result.y = 0.0f;
Result.z = 0.0f;
Result.w = 0.0f;
}
else
{
float s = RefractionIndex * t + sqrt(r);
Result.x = RefractionIndex * Incident.x - s * Normal.x;
Result.y = RefractionIndex * Incident.y - s * Normal.y;
Result.z = RefractionIndex * Incident.z - s * Normal.z;
Result.w = RefractionIndex * Incident.w - s * Normal.w;
}
return Result;
L’index de réfraction est le rapport entre l’index de réfraction du milieu contenant le vecteur incident et l’index de réfraction du milieu entré (où l’index de réfraction d’un milieu est lui-même le rapport entre la vitesse de la lumière dans un vide et la vitesse de la lumière dans le milieu).
Configuration requise pour la plateforme
Microsoft Visual Studio 2010 ou Microsoft Visual Studio 2012 avec le Kit de développement logiciel (SDK) Windows pour Windows 8. Pris en charge pour les applications de bureau Win32, les applications du Windows Store et Windows Phone 8 applications.Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | directxmath.h (inclure DirectXMath.h) |
Voir aussi
Fonctions géométriques vectorielles 4D de la bibliothèque DirectXMath