Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Bricht einen Incident-4D-Vektor über einen normalen 4D-Vektor.
Syntax
XMVECTOR XM_CALLCONV XMVector4Refract(
[in] FXMVECTOR Incident,
[in] FXMVECTOR Normal,
[in] float RefractionIndex
) noexcept;
Parameter
[in] Incident
4D-Incidentvektor zum Brechen.
[in] Normal
4D-Normalvektor zum Durchbrechen des Incidentvektors.
[in] RefractionIndex
Index der Brechung. Siehe Bemerkungen.
Rückgabewert
Gibt den Vektor für den gebrochenen Vorfall zurück. Wenn der Brechungsindex und der Winkel zwischen dem Zwischenfallvektor und dem Normalwert so sind, dass das Ergebnis eine interne Gesamtreflexion ist, gibt die Funktion einen Vektor der Form < 0.0f, 0.0f, 0.0f, 0.0f >zurück.
Hinweise
Der folgende Pseudocode veranschaulicht den Betrieb der Funktion:
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;
Der Index der Brechung ist das Verhältnis des Index der Brechung des Mediums, das den Einfallvektor enthält, zum Index der Brechung des eingegebenen Mediums (wobei der Index der Brechung eines Mediums selbst das Verhältnis der Lichtgeschwindigkeit in einem Vakuum zur Lichtgeschwindigkeit im Medium ist).
Plattformanforderungen
Microsoft Visual Studio 2010 oder Microsoft Visual Studio 2012 mit dem Windows SDK für Windows 8. Unterstützt für Win32-Desktop-Apps, Windows Store-Apps und Windows Phone 8-Apps.Anforderungen
| Anforderung | Wert |
|---|---|
| Zielplattform | Windows |
| Kopfzeile | directxmath.h (einschließlich DirectXMath.h) |
Weitere Informationen
Geometrische Funktionen der DirectXMath-Bibliothek mit 4D-Vektoren