Mathematische RenderScript-Vektorfunktionen

Ü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().