Przegląd
Te funkcje interpretują argumenty wejściowe jako reprezentacje wektorów w przestrzeni n-wymiarowej.
Na dokładność działań matematycznych na 32-bitowych liczbach zmiennoprzecinkowych wpływają wartości pragmas rs_fp_relaxed i rs_fp_full. Szczegółowe informacje znajdziesz w sekcji Stałe i funkcje matematyczne.
Za pomocą wariantów typowych funkcji matematycznych można osiągnąć różne zmiany w zakresie precyzji i szybkości. Funkcje, których nazwy zaczynają się od
- natywne_: mogą mieć niestandardowe implementacje sprzętowe o niższej dokładności. Dodatkowo wartości nienormalne mogą być opróżniane do zera, można zaokrąglać do zera, a dane wejściowe NaN i nieskończoności mogą nie być prawidłowo obsługiwane.
- fast_: umożliwia wykonywanie wewnętrznych obliczeń przy użyciu 16-bitowych liczb zmiennoprzecinkowych. Dodatkowo wartości podrzędne mogą być opróżniane do zera i można je zaokrąglać do zera.
Podsumowanie
Funkcje | |
---|---|
krzyżyk | Iloczyn krzyżowy 2 wektorów |
odległość | Odległość między dwoma punktami |
kropka | Iloczyn skalarny dwóch wektorów |
szybka_odległość | Przybliżona odległość między dwoma punktami |
szybka_długość | Przybliżona długość wektora |
fast_normalize | Przybliżona znormalizowana wektor |
length (długość) | Długość wektora |
odległość_natywna | Przybliżona odległość między dwoma punktami |
długość_natywnej | Przybliżona długość wektora |
native_normalize | Normalizuj wektor w przybliżeniu |
normalizacja | Normalizuj wektor |
Funkcje
krzyżowe : iloczyn krzyżowy 2 wektorów
float3 cross(float3 left_vector, float3 right_vector); | |
float4 cross(float4 left_vector, float4 right_vector); | |
pół3 krzyż(pół3 lewo_wektor, połowa3 prawo_wektor); | Dodano do poziomu interfejsu API 24. |
połowa_4 krzyży(pół4 lewo_wektor, połowa4 prawo_wektor); | Dodano do poziomu interfejsu API 24. |
Oblicza iloczyn wektorowy dwóch wektorów.
odległość : odległość między dwoma punktami
odległość_zmiennoprzecinkowa(lewy_wektor_zmiennoprzecinkowy, prawo_zmiennoprzecinkowe); | |
liczba zmiennoprzecinkowa(float2 left_vector, float2 right_vector); | |
liczba zmiennoprzecinkowa(float3 left_vector, float3 right_vector); | |
liczba zmiennoprzecinkowa(float4 left_vector, float4 right_vector); | |
połowa odległości(połowa lewo_wektor, połowa prawo_wektor); | Dodano do poziomu interfejsu API 24. |
połowa odległości(pół2 lewo_wektor, połowa2 prawo_wektor); | Dodano do poziomu interfejsu API 24. |
połowa odległości(pół3 lewo_wektor, połowa3 prawo_wektor); | Dodano do poziomu interfejsu API 24. |
połowa odległości(pół4 lewo_wektor, połowa4 prawo_wektor); | Dodano do poziomu interfejsu API 24. |
Obliczanie odległości między dwoma punktami.
Patrz też fast_distance(), native_distance().
kropka : iloczyn skalarny 2 wektorów
Liczba zmiennoprzecinkowa kropka(pozostały_wektor_zmiennoprzecinkowy; wektor_zmiennoprzecinkowy w prawo); | |
float dot(float2 left_vector, float2 right_vector); | |
float dot(float3 left_vector, float3 right_vector); | |
float dot(float4 left_vector, float4 right_vector); | |
half kropka(połowa lewo_wektor, połowa prawo_wektor); | Dodano do poziomu interfejsu API 24. |
half kropka(połowa2 lewo_wektor, połowa2 prawo_wektor); | Dodano do poziomu interfejsu API 24. |
half kropka(połowa3 lewo_wektor, połowa3 prawo_wektor); | Dodano do poziomu interfejsu API 24. |
half kropka(pół4 lewo_wektor, połowa4 prawo_wektor); | Dodano do poziomu interfejsu API 24. |
Oblicza iloczyn skalarny dwóch wektorów.
fast_distance : przybliżona odległość między 2 punktami
float fast_distance(zmiennoprzecinkowy_wektor_zmiennoprzecinkowy, liczba_zmiennoprzecinkowa_prawa_zmiennoprzecinkowa); | Dodano do poziomu interfejsu API 17 |
float fast_distance(float2 left_vector, float2 right_vector); | Dodano do poziomu interfejsu API 17 |
float fast_distance(float3 left_vector, float3 right_vector); | Dodano do poziomu interfejsu API 17 |
float fast_distance(float4 left_vector, float4 right_vector); | Dodano do poziomu interfejsu API 17 |
Oblicza przybliżoną odległość między dwoma punktami.
Dokładność jest taka sama jak w przypadku wykonywania obliczeń przy użyciu 16-bitowych wartości zmiennoprzecinkowych.
Zobacz też: distance(), native_distance().
fast_length : przybliżona długość wektora
float fast_length(float v); | Dodano do poziomu interfejsu API 17 |
float fast_length(float2 v); | Dodano do poziomu interfejsu API 17 |
float fast_length(float3 v); | Dodano do poziomu interfejsu API 17 |
float fast_length(float4 v); | Dodano do poziomu interfejsu API 17 |
Oblicza przybliżoną długość wektora.
Dokładność jest taka sama jak w przypadku wykonywania obliczeń przy użyciu 16-bitowych wartości zmiennoprzecinkowych.
Patrz też length(), native_length().
fast_normalize : przybliżony wektor znormalizowany
float fast_normalize(float v); | Dodano do poziomu interfejsu API 17 |
float2 fast_normalize(float2 v); | Dodano do poziomu interfejsu API 17 |
float3 fast_normalize(float3 v); | Dodano do poziomu interfejsu API 17 |
float4 fast_normalize(float4 v); | Dodano do poziomu interfejsu API 17 |
Normalizuje wektor w przybliżeniu.
W przypadku wektorów o rozmiarze 1 zwraca -1, f dla wartości ujemnych, 0, f w przypadku wartości null i 1.f dla wartości dodatnich.
Dokładność jest taka sama jak w przypadku wykonywania obliczeń przy użyciu 16-bitowych wartości zmiennoprzecinkowych.
Patrz też normalize(), native_normalize().
length : długość wektora
float length(float v); | |
Liczba zmiennoprzecinkowa(float2 v); | |
float length(float3 v); | |
float length(float4 v); | |
half length(half v); | Dodano do poziomu interfejsu API 24. |
half length(half2 v); | Dodano do poziomu interfejsu API 24. |
half length(half3 v); | Dodano do poziomu interfejsu API 24. |
half length(half4 v); | Dodano do poziomu interfejsu API 24. |
Oblicza długość wektora.
Patrz też fast_length(), native_length().
native_distance : przybliżona odległość między 2 punktami
float natywne_distance(zmiennoprzecinkowy_wektor_zmiennoprzecinkowy, wektor_zmiennoprzecinkowy_prawo_zmiennoprzecinkowy); | Dodano do poziomu interfejsu API 21 |
float_distance(float2 left_vector, float2 prawo_wektor); | Dodano do poziomu interfejsu API 21 |
floatNative_distance(float3 left_vector, float3 right_vector); | Dodano do poziomu interfejsu API 21 |
floatNative_distance(float4 left_vector, float4 right_vector); | Dodano do poziomu interfejsu API 21 |
odległość_natywna(połowa lewo_wektor, połowa prawego_wektora); | Dodano do poziomu interfejsu API 24. |
połowa natywnej_odległości(pół2 wektor_lewy; połowa2 prawego_wektora); | Dodano do poziomu interfejsu API 24. |
połowa natywnej_odległości(połowa3 lewo_wektor, połowa3 prawo_wektor); | Dodano do poziomu interfejsu API 24. |
połowa natywnej_odległości(pół4 lewo_wektor, połowa_4 prawo_wektor); | Dodano do poziomu interfejsu API 24. |
Oblicza przybliżoną odległość między dwoma punktami.
Zobacz też: distance(), fast_distance().
native_length: przybliżona długość wektora
float source_length(float v); | Dodano do poziomu interfejsu API 21 |
float_length(float2 v); | Dodano do poziomu interfejsu API 21 |
float_length(float3 v); | Dodano do poziomu interfejsu API 21 |
float_length(float4 v); | Dodano do poziomu interfejsu API 21 |
połowa natywnej_długości(połowa v); | Dodano do poziomu interfejsu API 24. |
pół natywna_length(pół2 v); | Dodano do poziomu interfejsu API 24. |
pół natywna_length(pół3 v); | Dodano do poziomu interfejsu API 24. |
połowa natywnej_długości(pół4 v); | Dodano do poziomu interfejsu API 24. |
Oblicz przybliżoną długość wektora.
Patrz też length(), fast_length().
native_normalize : w przybliżeniu normalizuj wektor
float natywne_normalize(zmiennoprzecinkowy v); | Dodano do poziomu interfejsu API 21 |
float2 native_normalize(float2 v); | Dodano do poziomu interfejsu API 21 |
float3 native_normalize(float3 v); | Dodano do poziomu interfejsu API 21 |
float4 native_normalize(float4 v); | Dodano do poziomu interfejsu API 21 |
halfnative_normalize(połowa v); | Dodano do poziomu interfejsu API 24. |
pół2 natywna_normalize(połowa2 v); | Dodano do poziomu interfejsu API 24. |
half3native_normalize(pół3 v); | Dodano do poziomu interfejsu API 24. |
pół4 natywna_normalize(połowa 4 v); | Dodano do poziomu interfejsu API 24. |
Normalizuje wektor w przybliżeniu.
Patrz też normalize(), fast_normalize().
normalizuj : normalizuj wektor
float normalize(float v); | |
float2 normalize(float2 v); | |
float3 normalize(float3 v); | |
float4 normalize(float4 v); | |
half normalize(pół v); | Dodano do poziomu interfejsu API 24. |
Normalize(pół2 v); half2; | Dodano do poziomu interfejsu API 24. |
half3 normalize(pół3 v); | Dodano do poziomu interfejsu API 24. |
Normalize(pół4 v); half4; | Dodano do poziomu interfejsu API 24. |
Normalizuj wektor.
W przypadku wektorów o rozmiarze 1 zwraca -1, f dla wartości ujemnych, 0, f w przypadku wartości null i 1.f dla wartości dodatnich.
Patrz też fast_normalize(), native_normalize().