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