RenderScript Vector Matematik İşlevleri

Genel bakış

Bu işlevler, giriş bağımsız değişkenlerini, n boyutlu uzayda vektörlerin gösterimi olarak yorumlar.

32 bitlik kayan noktalardaki matematik işlemlerinin hassasiyeti, pragmas rs_fp_relaxed ve rs_fp_full değerlerinden etkilenir. Ayrıntılar için Matematiksel Sabitler ve İşlevler bölümüne bakın.

Yaygın matematik fonksiyonlarının değişkenleri kullanılarak farklı hassasiyet/hız dengelemeleri elde edilebilir. ile başlayan bir ada sahip işlevler

  • yerel_: Daha düşük kesinliğe sahip özel donanım uygulamaları içerebilir. Ayrıca, normal alt değerler sıfıra kaydırılabilir, sıfıra yuvarlama kullanılabilir ve NaN ve sonsuzluk girişi doğru şekilde işlenemez.
  • fast_: 16 bit kayan öğeleri kullanarak dahili hesaplamalar yapabilir. Ayrıca, normal altı değerler sıfıra kaydırılabilir ve sıfıra yuvarlama kullanılabilir.

Özet

Fonksiyonlar
artı İki vektörün çapraz çarpımı
mesafe İki nokta arasındaki mesafe
nokta İki vektörün nokta çarpımı
hızlı_distance İki nokta arasındaki yaklaşık mesafe
Hızlı_uzunluk Bir vektörün yaklaşık uzunluğu
hızlı_normalleştirme Yaklaşık normalleştirilmiş vektör
length Bir vektörün uzunluğu
yerel_mesafe İki nokta arasındaki yaklaşık mesafe
yerel_uzunluk Bir vektörün yaklaşık uzunluğu
yerel_normalleştirme Bir vektörü yaklaşık olarak normalleştirme
normalleştir Bir vektörü normalleştirme

Fonksiyonlar

çapraz : İki vektörün çapraz çarpımı

float3 cross(float3 sol_vektör, float3 sağ_vektör);
float4 cross(float4 sol_vektör, float4 sağ_vektör);
half3 cross(half3 left_Vektör, half3 right_Vektör); API düzeyi 24'te eklendi
half4 cross(yarım4 sol_vektör, yarım4 sağ_vektör); API düzeyi 24'te eklendi

İki vektörün çapraz çarpımını hesaplar.

mesafe : İki nokta arasındaki mesafe

float length(float left_Vektör, float right_window);
bolluk mesafesi(float2 sol_vektör, float2 sağ_vektör);
floatground(float3 left_Vektör, float3 right_Vektör);
bolluk mesafesi(float4 sol_vektör, float4 sağ_vektör);
yarım mesafe(yarım sol_vektör, yarım sağ_vektör); API düzeyi 24'te eklendi
yarım mesafe(yarım2 sol_vektör, yarım2 sağ_vektör); API düzeyi 24'te eklendi
yarım mesafe(yarım3 sol_vektör, yarım3 sağ_vektör); API düzeyi 24'te eklendi
yarım mesafe(yarım4 sol_vektör, yarım4 sağ_vektör); API düzeyi 24'te eklendi

İki nokta arasındaki mesafeyi hesaplayın.

Ayrıca bkz. Hızlı_distance(), native_distance().

nokta : İki vektörün nokta çarpımı

kayan nokta(kayan sol_vektör, kayan sağ_vektör);
kayan nokta(float2 sol_vektör, float2 sağ_vektör);
kayan nokta(float3 sol_vektör, kayan3 sağ_vektör);
kayan nokta(float4 sol_vektör, float4 sağ_vektör);
yarım nokta(yarım sol_vektör, yarım sağ_vektör); API düzeyi 24'te eklendi
half nokta(yarım2 sol_vektör, yarım2 sağ_vektör); API düzeyi 24'te eklendi
half nokta(yarım3 sol_vektör, yarım3 sağ_vektör); API düzeyi 24'te eklendi
half nokta(yarım4 sol_vektör, yarım4 sağ_vektör); API düzeyi 24'te eklendi

İki vektörün nokta çarpımını hesaplar.

Hızlı_distance : İki nokta arasındaki yaklaşık mesafe

float fast_distance(float sol_vektör, float sağ_vektör); API düzeyi 17'de eklendi
float fast_distance(float2 sol_vektör, float2 sağ_vektör); API düzeyi 17'de eklendi
float fast_distance(float3 left_Vektör, float3 right_Vektör); API düzeyi 17'de eklendi
float fast_distance(float4 sol_vektör, float4 sağ_vektör); API düzeyi 17'de eklendi

İki nokta arasındaki yaklaşık mesafeyi hesaplar.

Hassasiyet, hesaplamayı 16 bit kayan nokta değerleri kullanarak yapmaktan beklenen değerdir.

Ayrıca bkz. distance(), native_distance().

Hızlı_uzunluk : Bir vektörün yaklaşık uzunluğu

float fast_length(float v); API düzeyi 17'de eklendi
float fast_length(float2 v); API düzeyi 17'de eklendi
float fast_length(float3 v); API düzeyi 17'de eklendi
float fast_length(float4 v); API düzeyi 17'de eklendi

Bir vektörün yaklaşık uzunluğunu hesaplar.

Hassasiyet, hesaplamayı 16 bit kayan nokta değerleri kullanarak yapmaktan beklenen değerdir.

Ayrıca bkz. length(), native_length().

Fast_normalize : Yaklaşık normalleştirilmiş vektör

float fast_normalize(float v); API düzeyi 17'de eklendi
float2 fast_normalize(float2 v); API düzeyi 17'de eklendi
float3 fast_normalize(float3 v); API düzeyi 17'de eklendi
float4 fast_normalize(float4 v); API düzeyi 17'de eklendi

Bir vektörü yaklaşık olarak normalleştirir.

1 boyutlu vektörlerde negatif değerler için -1.f, null değerler için 0.f ve pozitif değerler için 1.f değerini döndürür.

Hassasiyet, hesaplamayı 16 bit kayan nokta değerleri kullanarak yapmaktan beklenen değerdir.

Ayrıca bkz. normalize(), native_normalize().

length : Bir vektörün uzunluğu

kayan nokta uzunluğu(kayan noktalı v);
kayan nokta uzunluğu(float2 v);
float length(float3 v);
kayan nokta uzunluğu(float4 v);
yarım uzunluk(yarım v); API düzeyi 24'te eklendi
yarım length(half2 v); API düzeyi 24'te eklendi
yarım length(half3 v); API düzeyi 24'te eklendi
yarım length(half4 v); API düzeyi 24'te eklendi

Bir vektörün uzunluğunu hesaplar.

Ayrıca bkz. Hızlı_uzunluk(), native_length().

native_distance : İki nokta arasındaki yaklaşık mesafe

float Native_distance(float left_Vektör, float right_Vektör); API düzeyi 21'de eklendi
float Native_distance(float2 left_Vektör, float2 right_Vektör); API düzeyi 21'de eklendi
float Native_distance(float3 left_Vektör, float3 right_Vektör); API düzeyi 21'de eklendi
float local_distance(float4 left_Vektör, float4 right_Vektör); API düzeyi 21'de eklendi
yarı yerel_distance(yarım sol_vektör, yarım sağ_vektör); API düzeyi 24'te eklendi
yarı yerel_distance(yarım2 sol_vektör, yarım2 sağ_vektör); API düzeyi 24'te eklendi
yarı yerel_distance(yarım3 sol_vektör, yarım3 sağ_vektör); API düzeyi 24'te eklendi
yarı yerel_distance(yarım4 sol_vektör, yarım4 sağ_vektör); API düzeyi 24'te eklendi

İki nokta arasındaki yaklaşık mesafeyi hesaplar.

Ayrıca bkz. distance(), Fast_distance().

native_length : Bir vektörün yaklaşık uzunluğu

float Native_length(float v); API düzeyi 21'de eklendi
float yerel_length(float2 v); API düzeyi 21'de eklendi
float Native_length(float3 v); API düzeyi 21'de eklendi
float Native_length(float4 v); API düzeyi 21'de eklendi
half Native_length(half v); API düzeyi 24'te eklendi
half Native_length(half2 v); API düzeyi 24'te eklendi
half Native_length(half3 v); API düzeyi 24'te eklendi
half Native_length(half4 v); API düzeyi 24'te eklendi

Bir vektörün yaklaşık uzunluğunu hesaplayın.

Ayrıca bkz. length(), Fast_length().

native_normalize : Bir vektörü yaklaşık olarak normalleştirin

float Native_normalize(float v); API düzeyi 21'de eklendi
float2 Native_normalize(float2 v); API düzeyi 21'de eklendi
float3 Native_normalize(float3 v); API düzeyi 21'de eklendi
float4 Native_normalize(float4 v); API düzeyi 21'de eklendi
half local_normalize(half v); API düzeyi 24'te eklendi
half2 Native_normalize(half2 v); API düzeyi 24'te eklendi
half3 Native_normalize(yarı3 v); API düzeyi 24'te eklendi
half4 Native_normalize(half4 v); API düzeyi 24'te eklendi

Bir vektörü yaklaşık olarak normalleştirir.

Ayrıca bkz. normalize(), Fast_normalize().

normalize : Bir vektörü normalleştirme

float normalize(float v);
float2 normalize(float2 v);
float3 normalize(float3 v);
float4 normalize(float4 v);
half normalize(half v); API düzeyi 24'te eklendi
half2 normalize(half2 v); API düzeyi 24'te eklendi
half3 normalize(half3 v); API düzeyi 24'te eklendi
half4 normalize(half4 v); API düzeyi 24'te eklendi

Bir vektörü normalleştirme.

1 boyutlu vektörlerde negatif değerler için -1.f, null değerler için 0.f ve pozitif değerler için 1.f değerini döndürür.

Ayrıca bkz. Hızlı_normalize(), native_normalize().