Fonctions de mathématiques vectorielles RenderScript

Présentation

Ces fonctions interprètent les arguments d'entrée comme une représentation de vecteurs dans un espace à N dimensions.

La précision des opérations mathématiques sur les floats 32 bits est affectée par les pragmas rs_fp_relaxed et rs_fp_full. Pour en savoir plus, consultez la page Constantes et fonctions mathématiques.

Différents compromis de précision/vitesse peuvent être obtenus en utilisant des variantes des fonctions mathématiques courantes. Fonctions dont le nom commence par

  • native_: peut disposer d'implémentations matérielles personnalisées avec une précision plus faible. En outre, les valeurs subnormales peuvent être vidées à zéro, les valeurs arrondies vers zéro peuvent être utilisées, et les valeurs NaN et infinies peuvent ne pas être gérées correctement.
  • fast_: peut effectuer des calculs internes à l'aide de floats 16 bits. En outre, les valeurs inférieures à zéro peuvent être arrondies à zéro.

Résumé

Fonctions
croix Produit croisé de deux vecteurs
distance Distance entre deux points
point Produit scalaire de deux vecteurs
fast_distance Distance approximative entre deux points
longueur_rapide Longueur approximative d'un vecteur
fast_normalize Vecteur normalisé approximatif
longueur Longueur d'un vecteur
native_distance Distance approximative entre deux points
native_length Longueur approximative d'un vecteur
native_normalize Normaliser approximativement un vecteur
normaliser Normaliser un vecteur

Fonctions

croix : produit croisé de deux vecteurs

float3 cross(float3 left_vector, float3 right_vector);
float4 cross(float4 vecteur_gauche, float4 vecteur_droite);
half3 cross(moitié3 vecteur_gauche, moitié3 vecteur_droite); Ajouté au niveau d'API 24
croisement_half4(vecteur_gauche moiti4, moitié4 vecteur_droite) ; Ajouté au niveau d'API 24

Calcule le produit croisé de deux vecteurs.

distance : distance entre deux points

float distance(float left_vector, float_right_vector);
float distance(float2 vecteur_gauche, float2 vecteur_droite);
float distance(float3 left_vector, float3 right_vector);
float distance(float4 vecteur_gauche, float4 vecteur_droite);
demi distance(moitié_vector_gauche, moitié_vector_droit); Ajouté au niveau d'API 24
demi distance(moitié2 vecteur_gauche, moitié2 vecteur_droite); Ajouté au niveau d'API 24
demi distance(moitié3 vecteur_gauche, moitié3 vecteur_droit); Ajouté au niveau d'API 24
demi distance(moitié4 à vecteur_gauche, moitié4 à vecteur_droite) ; Ajouté au niveau d'API 24

Calculez la distance entre deux points.

Voir aussi fast_distance(), native_distance().

point : produit scalaire de deux vecteurs

float dot(vecteur_gauche gauche, flot_vector_droite);
float dot(float2 vecteur_gauche, float2 vecteur_droite);
float dot(float3 vecteur_gauche, float3 vecteur_droite);
float dot(float4 vecteur_gauche, float4 vecteur_droite);
demi point(moitié_vector_gauche, moiti_vector_droit); Ajouté au niveau d'API 24
half point(half2 vecteur_gauche, moitié2 vecteur_droite); Ajouté au niveau d'API 24
half point(half3 vecteur_gauche, moitié3 vecteur_droite); Ajouté au niveau d'API 24
half point(half4 vecteur_gauche, moitié4 vecteur_droite); Ajouté au niveau d'API 24

Calcule le produit scalaire de deux vecteurs.

fast_distance : distance approximative entre deux points

float fast_distance(float left_vector, float_right_vector); Ajouté au niveau d'API 17
float fast_distance(float2 left_vector, float2 right_vector); Ajouté au niveau d'API 17
float fast_distance(float3 left_vector, float3 right_vector); Ajouté au niveau d'API 17
float fast_distance(float4 vecteur_gauche, float4 vecteur_droite); Ajouté au niveau d'API 17

Calcule la distance approximative entre deux points.

La précision correspond à ce qu'on s'attend à ce que le calcul soit effectué à l'aide de valeurs à virgule flottante 16 bits.

Voir aussi distance(), native_distance().

fast_length : longueur approximative d'un vecteur

float fast_length(float v); Ajouté au niveau d'API 17
float fast_length(float2 v); Ajouté au niveau d'API 17
float fast_length(float3 v); Ajouté au niveau d'API 17
float fast_length(float4 v); Ajouté au niveau d'API 17

Calcule la longueur approximative d'un vecteur.

La précision correspond à ce qu'on s'attend à ce que le calcul soit effectué à l'aide de valeurs à virgule flottante 16 bits.

Voir aussi length() et native_length().

fast_normalize : vecteur normalisé approximatif

float fast_normalize(float v); Ajouté au niveau d'API 17
float2 fast_normalize(float2 v); Ajouté au niveau d'API 17
float3 fast_normalize(float3 v); Ajouté au niveau d'API 17
float4 fast_normalize(float4 v); Ajouté au niveau d'API 17

Normalise approximativement un vecteur.

Pour les vecteurs de taille 1, renvoie -1.f pour les valeurs négatives, 0.f pour les valeurs nulles et 1.f pour les valeurs positives.

La précision correspond à ce qu'on s'attend à ce que le calcul soit effectué à l'aide de valeurs à virgule flottante 16 bits.

Consultez également normalize() et native_normalize().

length : longueur d'un vecteur

float length(float v);
float length(float2 v);
float length(float3 v);
float length(float4 v);
half(moitié v); Ajouté au niveau d'API 24
half (demi-longueur) (half2 v); Ajouté au niveau d'API 24
half(half3 v); Ajouté au niveau d'API 24
half (demi-longueur) (half4 v); Ajouté au niveau d'API 24

Calcule la longueur d'un vecteur.

Voir aussi fast_length(), native_length().

native_distance : distance approximative entre deux points

float native_distance(float left_vector, float_right_vector); Ajouté au niveau d'API 21
float native_distance(float2 vecteur_gauche, float2 vecteur_droite; Ajouté au niveau d'API 21
float native_distance(float3 vecteur_gauche, float3 vecteur_droite; Ajouté au niveau d'API 21
float native_distance(float4 vecteur_gauche, float4 vecteur_droite); Ajouté au niveau d'API 21
half native_distance(demi vecteur_gauche, demi vecteur_droite); Ajouté au niveau d'API 24
half native_distance(half2 à vecteur_gauche, moitié2 à vecteur_droite); Ajouté au niveau d'API 24
half native_distance(half3 à vecteur_gauche, half3 à vecteur_droite); Ajouté au niveau d'API 24
half native_distance(moitié4 vecteur_gauche, moitié4 vecteur_droite); Ajouté au niveau d'API 24

Calcule la distance approximative entre deux points.

Voir aussi distance(), fast_distance().

native_length : longueur approximative d'un vecteur

float native_length(float v); Ajouté au niveau d'API 21
float native_length(float2 v); Ajouté au niveau d'API 21
float native_length(float3 v); Ajouté au niveau d'API 21
float native_length(float4 v); Ajouté au niveau d'API 21
half native_length(moitié v); Ajouté au niveau d'API 24
half native_length(half2 v); Ajouté au niveau d'API 24
half native_length(half3 v); Ajouté au niveau d'API 24
half native_length(half4 v); Ajouté au niveau d'API 24

Calculez la longueur approximative d'un vecteur.

Voir aussi length() et fast_length().

native_normalize : normaliser approximativement un vecteur.

float native_normalize(float v); Ajouté au niveau d'API 21
float2 native_normalize(float2 v); Ajouté au niveau d'API 21
float3 native_normalize(float3 v); Ajouté au niveau d'API 21
float4 native_normalize(float4 v); Ajouté au niveau d'API 21
half native_normalize(half v); Ajouté au niveau d'API 24
half2 native_normalize(half2 v); Ajouté au niveau d'API 24
half3 native_normalize(half3 v); Ajouté au niveau d'API 24
half4 native_normalize(half4 v); Ajouté au niveau d'API 24

Normalise approximativement un vecteur.

Voir aussi normalize() et fast_normalize().

normalize : normaliser un vecteur

float normalize(float v);
float2 normalize(float2 v);
float3 normalize(float3 v);
float4 normalize(float4 v);
half normalize(half v); Ajouté au niveau d'API 24
half2 normalize(half2 v); Ajouté au niveau d'API 24
half3 normalize(half3 v); Ajouté au niveau d'API 24
half4 normalize(half4 v); Ajouté au niveau d'API 24

Normaliser un vecteur

Pour les vecteurs de taille 1, renvoie -1.f pour les valeurs négatives, 0.f pour les valeurs nulles et 1.f pour les valeurs positives.

Voir aussi fast_normalize() et native_normalize().