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