Visão geral
Essas funções interpretam os argumentos de entrada como representação de vetores em um espaço de dimensão n.
A precisão das operações matemáticas em flutuações de 32 bits é afetada pelos pragmas rs_fp_relaxed e rs_fp_full. Consulte Constantes e funções matemáticas para mais detalhes.
Diferentes compensações de precisão/velocidade podem ser feitas usando variantes das funções matemáticas comuns. Funções com um nome que começa com
- native_: pode ter implementações de hardware personalizadas com precisão mais fraca. Além disso, valores subnormais podem ser desviados para zero, arredondamentos para zero podem ser usados e a entrada de NaN e infinito pode não ser tratada corretamente.
- fast_: pode realizar cálculos internos usando flutuações de 16 bits. Além disso, valores subnormais podem ser desviados para zero e arredondamentos até zero podem ser usados.
Resumo
Funções | |
---|---|
cruz | Produto cruzado de dois vetores |
distância | Distância entre dois pontos |
ponto | Produto escalar de dois vetores |
fast_distance | Distância aproximada entre dois pontos |
fast_length (link em inglês) | Comprimento aproximado de um vetor |
fast_normalize (link em inglês) | Vetor normalizado aproximado |
tamanho | Comprimento de um vetor |
native_distance | Distância aproximada entre dois pontos |
native_length | Comprimento aproximado de um vetor |
native_normalize (link em inglês) | Normalizar aproximadamente um vetor |
normalizar | Normalizar um vetor |
Funções
cross : produto cruzado de dois vetores
float3 cross(float3 left_vector, float3 right_vector); | |
float4 cross(float4 left_vector, float4 right_vector); | |
half3 cross(half3 left_vector, half3 right_vector); | Adicionado no nível 24 da API. |
half4 cross(half4 left_vector, half4 right_vector); | Adicionado no nível 24 da API. |
Calcula o produto de dois vetores.
distance : distância entre dois pontos
float distance(float left_vector, float right_vector); | |
float distância(float2 left_vector, float2 right_vector); | |
float distance(float3 left_vector, float3 right_vector); | |
float distância(float4 left_vector, float4 right_vector); | |
metade distância(metade vetor_esquerdo, meia direita_vetor); | Adicionado no nível 24 da API. |
metade distância(half2 esquerda_vetor, half2 right_vector); | Adicionado no nível 24 da API. |
half distance(half3 left_vector, half3 right_vector); | Adicionado no nível 24 da API. |
metade distância(half4 esquerda_vetor, half4 right_vector); | Adicionado no nível 24 da API. |
Calcule a distância entre dois pontos.
Consulte também fast_distance(), native_distance().
ponto : produto escalar de dois vetores
float ponto(float left_vector, float right_vector); | |
ponto flutuante(float2 left_vector, float2 right_vector); | |
ponto flutuante(float3 left_vector, float3 right_vector); | |
ponto flutuante(float4 left_vector, float4 right_vector); | |
half ponto(metade vetor_esquerdo, half right_vector); | Adicionado no nível 24 da API. |
half ponto(half2 left_vector, half2 right_vector); | Adicionado no nível 24 da API. |
half ponto(half3 left_vector, half3 right_vector); | Adicionado no nível 24 da API. |
half ponto(half4 left_vector, half4 right_vector); | Adicionado no nível 24 da API. |
Calcula o produto escalar de dois vetores.
fast_distance : distância aproximada entre dois pontos
float fast_distance(float left_vector, float right_vector); | Adicionado no nível 17 da API. |
float fast_distance(float2 left_vector, float2 right_vector); | Adicionado no nível 17 da API. |
float fast_distance(float3 left_vector, float3 right_vector); | Adicionado no nível 17 da API. |
float fast_distance(float4 left_vector, float4 right_vector); | Adicionado no nível 17 da API. |
Calcula a distância aproximada entre dois pontos.
A precisão é o que esperaria do cálculo usando valores de ponto flutuante de 16 bits.
Consulte também distance(), native_distance().
fast_length : comprimento aproximado de um vetor
float fast_length(float v); | Adicionado no nível 17 da API. |
float fast_length(float2 v); | Adicionado no nível 17 da API. |
float fast_length(float3 v); | Adicionado no nível 17 da API. |
float fast_length(float4 v); | Adicionado no nível 17 da API. |
Calcula o comprimento aproximado de um vetor.
A precisão é o que esperaria do cálculo usando valores de ponto flutuante de 16 bits.
Consulte também length(), native_length().
fast_normalizar : vetor normalizado aproximado
float fast_normal(float v); | Adicionado no nível 17 da API. |
float2 fast_normalize(float2 v); | Adicionado no nível 17 da API. |
float3 fast_normalize(float3 v); | Adicionado no nível 17 da API. |
float4 fast_normalize(float4 v); | Adicionado no nível 17 da API. |
normaliza aproximadamente um vetor.
Para vetores de tamanho 1, retorna -1.f para valores negativos, 0.f para valores nulos e 1.f para valores positivos.
A precisão é o que esperaria do cálculo usando valores de ponto flutuante de 16 bits.
Consulte também normalizar() e native_normalize().
length : comprimento de um vetor
float length(float v); | |
float length(float2 v); | |
float length(float3 v); | |
float length(float4 v); | |
half length(half v); | Adicionado no nível 24 da API. |
half length(half2 v); | Adicionado no nível 24 da API. |
half length(half3 v); | Adicionado no nível 24 da API. |
half length(half4 v); | Adicionado no nível 24 da API. |
Calcula o comprimento de um vetor.
Consulte também fast_length(), native_length().
native_distance : distância aproximada entre dois pontos
float native_distance(float left_vector, float right_vector); | Adicionado no nível 21 da API. |
float native_distance(float2 left_vector, float2 right_vector); | Adicionado no nível 21 da API. |
float native_distance(float3 left_vector, float3 right_vector); | Adicionado no nível 21 da API. |
float native_distance(float4 left_vector, float4 right_vector); | Adicionado no nível 21 da API. |
half native_distance(half left_vector, half right_vector); | Adicionado no nível 24 da API. |
half native_distance(half2 left_vector, half2 right_vector); | Adicionado no nível 24 da API. |
half native_distance(half3 left_vector, half3 right_vector); | Adicionado no nível 24 da API. |
half native_distance(half4 left_vector, half4 right_vector); | Adicionado no nível 24 da API. |
Calcula a distância aproximada entre dois pontos.
Veja também distance(), fast_distance().
native_length : comprimento aproximado de um vetor
float native_length(float v); | Adicionado no nível 21 da API. |
float native_length(float2 v); | Adicionado no nível 21 da API. |
float native_length(float3 v); | Adicionado no nível 21 da API. |
float native_length(float4 v); | Adicionado no nível 21 da API. |
half native_length(half v); | Adicionado no nível 24 da API. |
half native_length(half2 v); | Adicionado no nível 24 da API. |
half native_length(half3 v); | Adicionado no nível 24 da API. |
half native_length(half4 v); | Adicionado no nível 24 da API. |
Calcular o comprimento aproximado de um vetor.
Consulte também length(), fast_length().
native_Normal : normaliza aproximadamente um vetor
float native_normalize(float v); | Adicionado no nível 21 da API. |
float2 native_normalize(float2 v); | Adicionado no nível 21 da API. |
float3 native_normalize(float3 v); | Adicionado no nível 21 da API. |
float4 native_normalize(float4 v); | Adicionado no nível 21 da API. |
half native_normalize(half v); | Adicionado no nível 24 da API. |
half2 native_normalize(half2 v); | Adicionado no nível 24 da API. |
half3 native_normalize(half3 v); | Adicionado no nível 24 da API. |
half4 native_normalize(half4 v); | Adicionado no nível 24 da API. |
normaliza aproximadamente um vetor.
Consulte também normal() e fast_normalize().
normalizar : normalizar um vetor
float normalize(float v); | |
float2 normalizar(float2 v); | |
float3 normalizar(float3 v); | |
float4 normalizar(float4 v); | |
half normalize(half v); | Adicionado no nível 24 da API. |
half2 normalize(half2 v); | Adicionado no nível 24 da API. |
half3 normalize(half3 v); | Adicionado no nível 24 da API. |
half4 normalize(half4 v); | Adicionado no nível 24 da API. |
Normalizar um vetor.
Para vetores de tamanho 1, retorna -1.f para valores negativos, 0.f para valores nulos e 1.f para valores positivos.
Consulte também fast_normalize(), native_normalize().