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