Fungsi Matematika Vektor RenderScript

Ringkasan

Fungsi ini menafsirkan argumen input sebagai representasi vektor dalam ruang n-dimensi.

Presisi operasi matematika pada float 32 bit dipengaruhi oleh pragmas rs_fp_relaxed dan rs_fp_full. Lihat Fungsi dan Konstanta Matematika untuk mengetahui detailnya.

Kompromi yang berbeda presisi/kecepatan dapat dicapai dengan menggunakan varian fungsi matematika umum. Fungsi dengan nama yang diawali dengan

  • native_: Dapat memiliki implementasi hardware kustom dengan presisi yang lebih rendah. Selain itu, nilai subnormal mungkin akan menjadi nol, pembulatan ke arah nol dapat digunakan, dan input NaN dan tak terbatas mungkin tidak ditangani dengan benar.
  • fast_: Dapat melakukan komputasi internal menggunakan float 16 bit. Selain itu, nilai subnormal mungkin menjadi nol, dan pembulatan ke nol dapat digunakan.

Ringkasan

Fungsi
silang Perkalian silang dua vektor
jarak Jarak antara dua titik
titik Perkalian titik dari dua vektor
jarak_cepat Perkiraan jarak antara dua titik
fast_length [panjang_cepat] Perkiraan panjang vektor
normalkan_cepat Perkiraan vektor yang dinormalisasi
length [panjang] Panjang vektor
jarak_native Perkiraan jarak antara dua titik
native_length Perkiraan panjang vektor
normalkan_native Menormalkan sekitar vektor
normalisasi Menormalisasi vektor

Fungsi

silang : Perkalian silang dua vektor

float3 cross(float3 left_vector, float3 right_vector);
float4 cross(float4 left_vector, float4 right_vector);
half3 silang(half3 left_vector, half3 right_vector); Ditambahkan di API level 24
half4 silang(half4 left_vector, half4 right_vector); Ditambahkan di API level 24

Menghitung perkalian silang dari dua vektor.

jarak : Jarak antara dua titik

jarak mengambang(float left_vector, float right_vector);
jarak float(float2 left_vector, float2 right_vector);
jarak float(float3 left_vector, float3 right_vector);
jarak float(float4 left_vector, float4 right_vector);
setengah jarak(setengah left_vector, half right_vector); Ditambahkan di API level 24
setengah jarak(half2 left_vector, half2 right_vector); Ditambahkan di API level 24
setengah jarak(half3 left_vector, half3 right_vector); Ditambahkan di API level 24
setengah jarak(half4 left_vector, half4 right_vector); Ditambahkan di API level 24

Hitung jarak antara dua titik.

Lihat juga fast_distance(), native_distance().

titik : Perkalian titik dari dua vektor

titik mengambang(float left_vector, float right_vector);
titik mengambang(float2 left_vector, float2 right_vector);
titik mengambang(float3 left_vector, float3 right_vector);
titik mengambang(float4 left_vector, float4 right_vector);
setengah titik(setengah left_vector, half right_vector); Ditambahkan di API level 24
half titik(half2 left_vector, half2 right_vector); Ditambahkan di API level 24
setengah titik(half3 left_vector, half3 right_vector); Ditambahkan di API level 24
half titik(half4 left_vector, half4 right_vector); Ditambahkan di API level 24

Menghitung perkalian titik dari dua vektor.

fast_distance : Perkiraan jarak antara dua titik

{i>float fast_distance(float left_vector<i}, float right_vector); Ditambahkan di API level 17
float fast_distance(float2 left_vector, float2 right_vector); Ditambahkan di API level 17
float fast_distance(float3 left_vector, float3 right_vector); Ditambahkan di API level 17
float fast_distance(float4 left_vector, float4 right_vector); Ditambahkan di API level 17

Menghitung perkiraan jarak antara dua titik.

Presisi adalah hal yang diharapkan dari komputasi yang menggunakan nilai floating point 16 bit.

Lihat juga distance(), native_distance().

fast_length : Perkiraan panjang vektor

float fast_length(float v); Ditambahkan di API level 17
float fast_length(float2 v); Ditambahkan di API level 17
float fast_length(float3 v); Ditambahkan di API level 17
float fast_length(float4 v); Ditambahkan di API level 17

Menghitung perkiraan panjang vektor.

Presisi adalah hal yang diharapkan dari komputasi yang menggunakan nilai floating point 16 bit.

Lihat juga length(), native_length().

fast_normalize : Perkiraan vektor yang dinormalisasi

{i>float fast_normalize<i}(float v); Ditambahkan di API level 17
float2 fast_normalize(float2 v); Ditambahkan di API level 17
float3 fast_normalize(float3 v); Ditambahkan di API level 17
float4 fast_normalize(float4 v); Ditambahkan di API level 17

Sekitar menormalisasi vektor.

Untuk vektor ukuran 1, tampilkan -1.f untuk nilai negatif, 0.f untuk nilai null, dan 1.f untuk nilai positif.

Presisi adalah hal yang diharapkan dari komputasi yang menggunakan nilai floating point 16 bit.

Lihat juga normalize(), native_normalize().

length : Panjang vektor

panjang float(float v);
panjang float(float2 v);
panjang float(float3 v);
panjang float(float4 v);
setengah panjang(setengah v); Ditambahkan di API level 24
setengah panjang(setengah2 v); Ditambahkan di API level 24
half length(half3 v); Ditambahkan di API level 24
setengah panjang(setengah4 v); Ditambahkan di API level 24

Menghitung panjang vektor.

Lihat juga fast_length(), native_length().

native_distance : Perkiraan jarak antara dua titik

float native_distance(float left_vector, float right_vector); Ditambahkan di API level 21
float native_distance(float2 left_vector, float2 right_vector); Ditambahkan di API level 21
float native_distance(float3 left_vector, float3 right_vector); Ditambahkan di API level 21
float native_distance(float4 left_vector, float4 right_vector); Ditambahkan di API level 21
setengah native_distance(setengah left_vector, half right_vector); Ditambahkan di API level 24
setengah native_distance(half2 left_vector, half2 right_vector); Ditambahkan di API level 24
setengah native_distance(half3 left_vector, half3 right_vector); Ditambahkan di API level 24
setengah native_distance(half4 left_vector, half4 right_vector); Ditambahkan di API level 24

Menghitung perkiraan jarak antara dua titik.

Lihat juga distance(), fast_distance().

native_length : Perkiraan panjang vektor

float native_length(float v); Ditambahkan di API level 21
float native_length(float2 v); Ditambahkan di API level 21
float native_length(float3 v); Ditambahkan di API level 21
float native_length(float4 v); Ditambahkan di API level 21
half native_length(setengah v); Ditambahkan di API level 24
half native_length(half2 v); Ditambahkan di API level 24
half native_length(half3 v); Ditambahkan di API level 24
half native_length(half4 v); Ditambahkan di API level 24

Hitung perkiraan panjang vektor.

Lihat juga length(), fast_length().

native_normalize : Menormalisasi vektor

float native_normalize(float v); Ditambahkan di API level 21
float2 native_normalize(float2 v); Ditambahkan di API level 21
float3 native_normalize(float3 v); Ditambahkan di API level 21
float4 native_normalize(float4 v); Ditambahkan di API level 21
setengah native_normalize(setengah v); Ditambahkan di API level 24
half2 native_normalize(half2 v); Ditambahkan di API level 24
half3 native_normalize(half3 v); Ditambahkan di API level 24
half4 native_normalize(half4 v); Ditambahkan di API level 24

Sekitar menormalisasi vektor.

Lihat juga normalize(), fast_normalize().

normalisasi : Menormalisasi vektor

float normalize(float v);
float2 normalize(float2 v);
float3 normalize(float3 v);
float4 normalize(float4 v);
setengah normalisasi(setengah v); Ditambahkan di API level 24
half2 normalize(half2 v); Ditambahkan di API level 24
half3 normalize(half3 v); Ditambahkan di API level 24
half4 normalize(half4 v); Ditambahkan di API level 24

Menormalisasi vektor.

Untuk vektor ukuran 1, tampilkan -1.f untuk nilai negatif, 0.f untuk nilai null, dan 1.f untuk nilai positif.

Lihat juga fast_normalize(), native_normalize().