Übersicht
Diese Funktionen interpretieren die Eingabeargumente als Darstellung von Vektoren im n-dimensionalen Bereich.
Die Genauigkeit der mathematischen Operationen in 32-Bit-Gleitkommazahlen wird von den Pragmas rs_fp_relaxed und rs_fp_full beeinflusst. Weitere Informationen finden Sie unter Mathematische Konstanten und Funktionen.
Mithilfe von Varianten gängiger mathematischer Funktionen können unterschiedliche Kompromisse bei Genauigkeit und Geschwindigkeit erreicht werden. Funktionen mit einem Namen, der mit
- native_: Kann benutzerdefinierte Hardwareimplementierungen mit geringerer Genauigkeit haben. Darüber hinaus können subnormale Werte auf null bereinigt werden, eine Rundung in Richtung Null kann verwendet werden und die Eingabe von NaN und Unendlichkeit wird möglicherweise nicht korrekt verarbeitet.
- fast_: Kann interne Berechnungen mit 16-Bit-Gleitkommazahlen ausführen. Darüber hinaus können subnormale Werte auf null bereinigt und gegen null gerundet werden.
Zusammenfassung
Funktionen | |
---|---|
Kreuz | Kreuzprodukt zweier Vektoren |
Entfernung | Entfernung zwischen zwei Punkten |
Punkt | Punktprodukt zweier Vektoren |
fast_distance | Ungefähre Entfernung zwischen zwei Punkten |
fast_length (schnelle_Länge) | Ungefähre Länge eines Vektors |
fast_normalize | Ungefährer normalisierter Vektor |
Länge | Länge eines Vektors |
native_distance | Ungefähre Entfernung zwischen zwei Punkten |
native_length (native_Länge) | Ungefähre Länge eines Vektors |
native_normalisieren | Einen Vektor ungefähr normalisieren |
normalisieren | Vektoren normalisieren |
Funktionen
cross: Kreuzprodukt zweier Vektoren
float3 Cross(float3 left_vector, float3 right_vector); | |
float4 Cross(float4 left_vector, float4 right_vector); | |
half3 Cross(half3 left_vector, half3 right_vector); | In API-Level 24 hinzugefügt |
half4 Cross(half4 left_vector, half4 right_vector); | In API-Level 24 hinzugefügt |
Berechnet das Kreuzprodukt zweier Vektoren.
distance : Entfernung zwischen zwei Punkten
float distance(float left_vector, float right_vector); | |
float-Distanz(float2 left_vector, float2 right_vector); | |
Float-Distanz(float3 left_vector, float3 right_vector); | |
float-Distanz(float4 left_vector, float4 right_vector); | |
half distance(half left_vector, half right_vector); | In API-Level 24 hinzugefügt |
half distance(half2 left_vector, half2 right_vector); | In API-Level 24 hinzugefügt |
half distance(half3 left_vector, half3 right_vector); | In API-Level 24 hinzugefügt |
half distance(half4 left_vector, half4 right_vector); | In API-Level 24 hinzugefügt |
Berechnen Sie die Entfernung zwischen zwei Punkten.
Siehe auch fast_distance(), native_distance().
Punkt : Punktprodukt zweier Vektoren
float Punkt(float link_vector, float right_vector); | |
float Punkt(float2 left_vector, float2 right_vector); | |
float Punkt(float3 left_vector, float3 right_vector); | |
float Punkt(float4 left_vector, float4 right_vector); | |
half Punkt(half left_vector, half right_vector); | In API-Level 24 hinzugefügt |
half Punkt(half2 left_vector, half2 right_vector); | In API-Level 24 hinzugefügt |
half Punkt(half3 left_vector, half3 right_vector); | In API-Level 24 hinzugefügt |
half Punkt(half4 left_vector, half4 right_vector); | In API-Level 24 hinzugefügt |
Berechnet das Skalarprodukt zweier Vektoren.
fast_distance: Ungefähre Entfernung zwischen zwei Punkten
float fast_distance(float left_vector, float right_vector); | In API-Level 17 hinzugefügt |
float fast_distance(float2 left_vector, float2 right_vector); | In API-Level 17 hinzugefügt |
float fast_distance(float3 left_vector, float3 right_vector); | In API-Level 17 hinzugefügt |
float fast_distance(float4 left_vector, float4 right_vector); | In API-Level 17 hinzugefügt |
Berechnet die ungefähre Entfernung zwischen zwei Punkten.
Die Genauigkeit ist die zu erwartende Berechnung mit 16-Bit-Gleitkommawerten.
Siehe auch distance(), native_distance().
fast_length: Ungefähre Länge eines Vektors
float fast_length(float v); | In API-Level 17 hinzugefügt |
float fast_length(float2 v); | In API-Level 17 hinzugefügt |
float fast_length(float3 v); | In API-Level 17 hinzugefügt |
float fast_length(float4 v); | In API-Level 17 hinzugefügt |
Berechnet die ungefähre Länge eines Vektors.
Die Genauigkeit ist die zu erwartende Berechnung mit 16-Bit-Gleitkommawerten.
Siehe auch length(), native_length().
fast_normalize: Ungefährer normalisierter Vektor
float fast_normalize(float v); | In API-Level 17 hinzugefügt |
float2 fast_normalize(float2 v); | In API-Level 17 hinzugefügt |
float3 fast_normalize(float3 v); | In API-Level 17 hinzugefügt |
float4 fast_normalize(float4 v); | In API-Level 17 hinzugefügt |
Normalisiert einen Vektor annähernd.
Für Vektoren der Größe 1 wird -1.f für negative Werte, 0.f für Nullwerte und 1.f für positive Werte zurückgegeben.
Die Genauigkeit ist die zu erwartende Berechnung mit 16-Bit-Gleitkommawerten.
Siehe auch normalize(), native_normalize().
length: Länge eines Vektors
float length(float v); | |
Gleitkommalänge(float2 v); | |
Gleitkommalänge(float3 v); | |
float length(float4 v); | |
half length(halb V); | In API-Level 24 hinzugefügt |
half length(half2 V); | In API-Level 24 hinzugefügt |
half length(half3 V); | In API-Level 24 hinzugefügt |
half length(half4 V); | In API-Level 24 hinzugefügt |
Berechnet die Länge eines Vektors.
Siehe auch fast_length(), native_length().
native_distance : Ungefähre Entfernung zwischen zwei Punkten
float native_distance(float left_vector, float right_vector); | In API-Level 21 hinzugefügt |
float native_distance(float2 left_vector, float2 right_vector); | In API-Level 21 hinzugefügt |
float native_distance(float3 left_vector, float3 right_vector); | In API-Level 21 hinzugefügt |
float native_distance(float4 left_vector, float4 right_vector); | In API-Level 21 hinzugefügt |
half native_distance(half left_vector, half right_vector); | In API-Level 24 hinzugefügt |
half native_distance(half2 left_vector, half2 right_vector); | In API-Level 24 hinzugefügt |
half native_distance(half3 left_vector, half3 right_vector); | In API-Level 24 hinzugefügt |
half native_distance(half4 left_vector, half4 right_vector); | In API-Level 24 hinzugefügt |
Berechnet die ungefähre Entfernung zwischen zwei Punkten.
Siehe auch distance(), fast_distance().
native_length: Ungefähre Länge eines Vektors
float native_length(float v); | In API-Level 21 hinzugefügt |
float native_length(float2 v); | In API-Level 21 hinzugefügt |
float native_length(float3 v); | In API-Level 21 hinzugefügt |
float native_length(float4 v); | In API-Level 21 hinzugefügt |
half native_length(halb V); | In API-Level 24 hinzugefügt |
half native_length(half2 v); | In API-Level 24 hinzugefügt |
half native_length(half3 v); | In API-Level 24 hinzugefügt |
half native_length(half4 v); | In API-Level 24 hinzugefügt |
Die ungefähre Länge eines Vektors berechnen.
Siehe auch length(), fast_length().
native_normalize : Vektor ungefähr normalisieren
float native_normalize(float v); | In API-Level 21 hinzugefügt |
float2 native_normalize(float2 v); | In API-Level 21 hinzugefügt |
float3 native_normalize(float3 v); | In API-Level 21 hinzugefügt |
float4 native_normalize(float4 v); | In API-Level 21 hinzugefügt |
half native_normalize(halb v); | In API-Level 24 hinzugefügt |
half2 native_normalize(half2 v); | In API-Level 24 hinzugefügt |
half3 native_normalize(half3 v); | In API-Level 24 hinzugefügt |
half4 native_normalize(half4 v); | In API-Level 24 hinzugefügt |
Normalisiert einen Vektor annähernd.
Siehe auch normalize(), fast_normalize().
normalisieren: Vektor normalisieren
float normalize(float v); | |
float2 normalize(float2 v); | |
float3 normalize(float3 v); | |
float4 normalize(float4 v); | |
half normalize(half v); | In API-Level 24 hinzugefügt |
half2 normalize(half2 v); | In API-Level 24 hinzugefügt |
half3 normalize(half3 v); | In API-Level 24 hinzugefügt |
half4 normalize(half4 v); | In API-Level 24 hinzugefügt |
Vektoren normalisieren
Für Vektoren der Größe 1 wird -1.f für negative Werte, 0.f für Nullwerte und 1.f für positive Werte zurückgegeben.
Siehe auch fast_normalize(), native_normalize().