Funciones matemáticas de vector de RenderScript

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