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