Descripción general
Estas funciones interpretan los argumentos de entrada como una representación de vectores en un espacio n-dimensional.
La precisión de las operaciones matemáticas en flotantes de 32 bits se ve afectada por los pragmas rs_fp_relaxed y rs_fp_full. Consulta Constantes y funciones matemáticas para obtener más detalles.
Se pueden lograr diferentes concesiones entre la velocidad y la precisión mediante el uso de variantes de las funciones matemáticas comunes. Funciones cuyo nombre comienza con
- native_: Es posible que tenga implementaciones de hardware personalizadas con una precisión más débil. Además, los valores subnormales pueden pasarse a cero y se puede usar el redondeo hacia cero, y es posible que la entrada infinita y NaN no se manejen de forma correcta.
- fast_: Puede realizar cálculos internos con flotantes de 16 bits. Además, los valores subnormales pueden descartarse a cero y se puede usar el redondeo hacia cero.
Resumen
Funciones | |
---|---|
cruz | Producto cruzado de dos vectores |
distancia | Distancia entre dos puntos |
punto | Producto punto de dos vectores |
fast_distancia | Distancia aproximada entre dos puntos |
fast_length | Longitud aproximada de un vector |
fast_normalize | Vector normalizado aproximado |
longitud | Longitud de un vector |
native_distance | Distancia aproximada entre dos puntos |
native_length | Longitud aproximada de un vector |
native_normalize | Normalizar un vector de manera aproximada |
normalizar | Normalizar un vector |
Funciones
cruzado : producto cruzado de dos vectores
float3 cross(float3 left_vector, float3 right_vector); | |
float4 cross(float4 left_vector, float4 right_vector); | |
half3 cross(medio3 vector_izquierda, half3 vector_derecho); | Se agregó en el nivel de API 24. |
half4 cross(medio4 vector_izquierda, half4 vector_derecho); | Se agregó en el nivel de API 24. |
Calcula el producto cruzado de dos vectores.
distance : la distancia entre dos puntos
float distancia(float left_vector, float right_vector); | |
float distancia(float2 left_vector, float2 right_vector); | |
distancia_flotante(float3 left_vector, float3 right_vector); | |
float distancia(float4 left_vector, float4 right_vector); | |
mitad distancia(medio vector_izquierda, medio vector_derecho); | Se agregó en el nivel de API 24. |
mitad distancia(medio_2 vector_izquierda, medio2 vector_derecho); | Se agregó en el nivel de API 24. |
mitad distancia(medio_3 vector_izquierda, medio3 vector_derecho); | Se agregó en el nivel de API 24. |
mitad distancia(medio_4 vector_izquierda, medio4 vector_derecho); | Se agregó en el nivel de API 24. |
Calcula la distancia entre dos puntos.
Consulta también fast_distance() y native_distance().
dot : Producto punteado de dos vectores
float punto(float left_vector, float right_vector); | |
float punto(float2 left_vector, float2 right_vector); | |
float punto(float3 left_vector, float3 right_vector); | |
float punto(float4 left_vector, float4 right_vector); | |
medio punto(medio vector_izquierda, medio vector_derecho); | Se agregó en el nivel de API 24. |
medio punto(medio_2 vector_izquierda, medio2 vector_derecho); | Se agregó en el nivel de API 24. |
medio punto(medio_3 vector_izquierda, half3 vector_derecho); | Se agregó en el nivel de API 24. |
medio punto(medio_4 vector_izquierda, medio4 vector_derecho); | Se agregó en el nivel de API 24. |
Calcula el producto escalar de dos vectores.
fast_distance : La distancia aproximada entre dos puntos
float fast_distance(float left_vector, float right_vector); | Se agregó en el nivel de API 17. |
float fast_distance(float2 left_vector, float2 right_vector); | Se agregó en el nivel de API 17. |
float fast_distance(float3 left_vector, float3 right_vector); | Se agregó en el nivel de API 17. |
float fast_distance(float4 left_vector, float4 right_vector); | Se agregó en el nivel de API 17. |
Calcula la distancia aproximada entre dos puntos.
La precisión es la que se esperaría si se realiza el cálculo con valores de punto flotante de 16 bits.
Consulta también distance() y native_distance().
fast_length : Longitud aproximada de un vector
float fast_length(float v); | Se agregó en el nivel de API 17. |
float fast_length(float2 v); | Se agregó en el nivel de API 17. |
float fast_length(float3 v); | Se agregó en el nivel de API 17. |
float fast_length(float4 v); | Se agregó en el nivel de API 17. |
Calcula la longitud aproximada de un vector.
La precisión es la que se esperaría si se realiza el cálculo con valores de punto flotante de 16 bits.
Consulta también length() y native_length().
fast_normalize : Vector normalizado aproximado
float fast_normalize(float v); | Se agregó en el nivel de API 17. |
float2 fast_normalize(float2 v); | Se agregó en el nivel de API 17. |
float3 fast_normalize(float3 v); | Se agregó en el nivel de API 17. |
float4 fast_normalize(float4 v); | Se agregó en el nivel de API 17. |
Normaliza un vector de manera aproximada.
Para vectores de tamaño 1, muestra -1.f para valores negativos, 0.f para valores nulos y 1.f para valores positivos.
La precisión es la que se esperaría si se realiza el cálculo con valores de punto flotante de 16 bits.
Consulta también normalize(), native_normalize().
length : Longitud de un vector
float length(float v); | |
float length(float2 v); | |
float length(float3 v); | |
float length(float4 v); | |
longitud media(media v); | Se agregó en el nivel de API 24. |
longitud media(mitad2 v); | Se agregó en el nivel de API 24. |
longitud media(mitad3 v); | Se agregó en el nivel de API 24. |
longitud media(mitad4 v); | Se agregó en el nivel de API 24. |
Calcula la longitud de un vector.
Consulta también fast_length() y native_length().
native_distance : la distancia aproximada entre dos puntos
float native_distance(float left_vector, float right_vector); | Se agregó en el nivel de API 21. |
float native_distance(float2 left_vector, float2 right_vector); | Se agregó en el nivel de API 21. |
float native_distance(float3 left_vector, float3 right_vector); | Se agregó en el nivel de API 21. |
float native_distance(float4 left_vector, float4 right_vector); | Se agregó en el nivel de API 21. |
media native_distance(mitad left_vector, half right_vector); | Se agregó en el nivel de API 24. |
half native_distance(half2 left_vector, half2 right_vector); | Se agregó en el nivel de API 24. |
half native_distance(half3 left_vector, half3 right_vector); | Se agregó en el nivel de API 24. |
half native_distance(mitad4 left_vector, half4 right_vector); | Se agregó en el nivel de API 24. |
Calcula la distancia aproximada entre dos puntos.
Consulta también distance(), fast_distance().
native_length : La longitud aproximada de un vector
float native_length(float v); | Se agregó en el nivel de API 21. |
float native_length(float2 v); | Se agregó en el nivel de API 21. |
float native_length(float3 v); | Se agregó en el nivel de API 21. |
float native_length(float4 v); | Se agregó en el nivel de API 21. |
half native_length(mitad v); | Se agregó en el nivel de API 24. |
half native_length(half2 v); | Se agregó en el nivel de API 24. |
half native_length(half3 v); | Se agregó en el nivel de API 24. |
half native_length(half4 v); | Se agregó en el nivel de API 24. |
Calcula la longitud aproximada de un vector.
Consulta también length(), fast_length().
native_normalize : Normaliza un vector de manera aproximada
float native_normalize(float v); | Se agregó en el nivel de API 21. |
float2 native_normalize(float2 v); | Se agregó en el nivel de API 21. |
float3 native_normalize(float3 v); | Se agregó en el nivel de API 21. |
float4 native_normalize(float4 v); | Se agregó en el nivel de API 21. |
half native_normalize(mitad v); | Se agregó en el nivel de API 24. |
half2 native_normalize(half2 v); | Se agregó en el nivel de API 24. |
half3 native_normalize(half3 v); | Se agregó en el nivel de API 24. |
half4 native_normalize(mitad4 v); | Se agregó en el nivel de API 24. |
Normaliza un vector de manera aproximada.
Consulta también normalize(), fast_normalize().
normalize : Normaliza un vector
float normalize(float v); | |
float2 normalize(float2 v); | |
float3 normalize(float3 v); | |
float4 normalize(float4 v); | |
mitad normalizar(mitad v); | Se agregó en el nivel de API 24. |
half2 normalizar(mitad2 v); | Se agregó en el nivel de API 24. |
half3 normalizar(mitad3 v); | Se agregó en el nivel de API 24. |
mitad4 normalizar(mitad4 v); | Se agregó en el nivel de API 24. |
Normalizar un vector.
Para vectores de tamaño 1, muestra -1.f para valores negativos, 0.f para valores nulos y 1.f para valores positivos.
Consulta también fast_normalize() y native_normalize().