ภาพรวม
ฟังก์ชันเหล่านี้จะตีความอาร์กิวเมนต์อินพุตเป็นการนำเสนอเวกเตอร์ในปริภูมิ n มิติ
ความแม่นยำของการดำเนินการทางคณิตศาสตร์กับตัวเลขทศนิยม 32 บิตจะได้รับผลกระทบจากพรอมต์ rs_fp_relaxed และ rs_fp_full ดูรายละเอียดได้ที่ค่าคงที่และฟังก์ชันทางคณิตศาสตร์
คุณสามารถปรับสมดุลความแม่นยำ/ความเร็วได้โดยใช้ตัวแปรของฟังก์ชันคณิตศาสตร์ทั่วไป ฟังก์ชันที่มีชื่อขึ้นต้นด้วย
- native_: อาจมีการนําฮาร์ดแวร์ที่กำหนดเองมาใช้ซึ่งมีความแม่นยำน้อยกว่า นอกจากนี้ ระบบอาจปัดค่าที่ต่ำกว่าปกติเป็น 0, ใช้การปัดทศนิยมลง และอาจจัดการอินพุต NaN และอินพุต Infinity อย่างไม่ถูกต้อง
- fast_: อาจทําการคํานวณภายในโดยใช้ตัวเลขทศนิยม 16 บิต นอกจากนี้ ระบบอาจปัดค่าที่ต่ำกว่าปกติเป็น 0 และอาจปัดเศษให้ใกล้กับ 0
สรุป
ฟังก์ชัน | |
---|---|
cross | ผลคูณไขว้ของ 2 เวกเตอร์ |
distance | ระยะทางระหว่าง 2 จุด |
dot | ผลคูณเวกเตอร์ของ 2 เวกเตอร์ |
fast_distance | ระยะทางโดยประมาณระหว่าง 2 จุด |
fast_length | ความยาวโดยประมาณของเวกเตอร์ |
fast_normalize | เวกเตอร์ที่ปรับให้เป็นมาตรฐานโดยประมาณ |
length | ความยาวของเวกเตอร์ |
native_distance | ระยะทางโดยประมาณระหว่าง 2 จุด |
native_length | ความยาวโดยประมาณของเวกเตอร์ |
native_normalize | ทำให้เวกเตอร์เป็นปกติโดยประมาณ |
normalize | ปรับเวกเตอร์ให้เป็นมาตรฐาน |
ฟังก์ชัน
cross : ผลคูณไขว้ของ 2 เวกเตอร์
float3 cross(float3 left_vector, float3 right_vector); | |
float4 cross(float4 left_vector, float4 right_vector); | |
half3 cross(half3 left_vector, half3 right_vector); | เพิ่มใน API ระดับ 24 |
half4 cross(half4 left_vector, half4 right_vector); | เพิ่มใน API ระดับ 24 |
คำนวณผลคูณไขว้ของ 2 เวกเตอร์
distance : ระยะทางระหว่าง 2 จุด
float distance(float left_vector, float right_vector); | |
float distance(float2 left_vector, float2 right_vector); | |
float distance(float3 left_vector, float3 right_vector); | |
float distance(float4 left_vector, float4 right_vector); | |
half distance(half left_vector, half right_vector); | เพิ่มใน API ระดับ 24 |
half distance(half2 left_vector, half2 right_vector); | เพิ่มใน API ระดับ 24 |
half distance(half3 left_vector, half3 right_vector); | เพิ่มใน API ระดับ 24 |
half distance(half4 left_vector, half4 right_vector); | เพิ่มใน API ระดับ 24 |
คำนวณระยะทางระหว่าง 2 จุด
ดูข้อมูลเพิ่มเติมได้ที่ fast_distance(), native_distance()
dot : ผลคูณจุดของเวกเตอร์ 2 รายการ
float dot(float left_vector, float right_vector); | |
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 dot(half left_vector, half right_vector); | เพิ่มใน API ระดับ 24 |
half dot(half2 left_vector, half2 right_vector); | เพิ่มใน API ระดับ 24 |
half dot(half3 left_vector, half3 right_vector); | เพิ่มใน API ระดับ 24 |
half dot(half4 left_vector, half4 right_vector); | เพิ่มใน API ระดับ 24 |
คำนวณผลคูณเวกเตอร์ของ 2 เวกเตอร์
fast_distance : ระยะทางโดยประมาณระหว่าง 2 จุด
float fast_distance(float left_vector, float right_vector); | เพิ่มใน API ระดับ 17 |
float fast_distance(float2 left_vector, float2 right_vector); | เพิ่มใน API ระดับ 17 |
float fast_distance(float3 left_vector, float3 right_vector); | เพิ่มใน API ระดับ 17 |
float fast_distance(float4 left_vector, float4 right_vector); | เพิ่มใน API ระดับ 17 |
คํานวณระยะทางโดยประมาณระหว่าง 2 จุด
ความแม่นยำคือสิ่งที่คาดหวังได้จากการทําการคํานวณโดยใช้ค่าจุดลอยตัว 16 บิต
ดูข้อมูลเพิ่มเติมได้ที่ distance(), native_distance()
fast_length : ความยาวโดยประมาณของเวกเตอร์
float fast_length(float v); | เพิ่มใน API ระดับ 17 |
float fast_length(float2 v); | เพิ่มใน API ระดับ 17 |
float fast_length(float3 v); | เพิ่มใน API ระดับ 17 |
float fast_length(float4 v); | เพิ่มใน API ระดับ 17 |
คำนวณความยาวโดยประมาณของเวกเตอร์
ความแม่นยำคือสิ่งที่คาดหวังได้จากการทําการคํานวณโดยใช้ค่าจุดลอยตัว 16 บิต
โปรดดู length(), native_length() ด้วย
fast_normalize : เวกเตอร์ที่ปรับให้เป็นมาตรฐานโดยประมาณ
float fast_normalize(float v); | เพิ่มใน API ระดับ 17 |
float2 fast_normalize(float2 v); | เพิ่มใน API ระดับ 17 |
float3 fast_normalize(float3 v); | เพิ่มใน API ระดับ 17 |
float4 fast_normalize(float4 v); | เพิ่มใน API ระดับ 17 |
ปรับเวกเตอร์ให้เป็นมาตรฐานโดยประมาณ
สำหรับเวกเตอร์ขนาด 1 จะแสดงผล -1.f สำหรับค่าติดลบ, 0.f สำหรับค่า Null และ 1.f สำหรับค่าบวก
ความแม่นยำคือสิ่งที่คาดหวังได้จากการทําการคํานวณโดยใช้ค่าจุดลอยตัว 16 บิต
โปรดดู normalize(), native_normalize() ด้วย
length : ความยาวของเวกเตอร์
float length(float v); | |
float length(float2 v); | |
float length(float3 v); | |
float length(float4 v); | |
half length(half v); | เพิ่มใน API ระดับ 24 |
half length(half2 v); | เพิ่มใน API ระดับ 24 |
half length(half3 v); | เพิ่มใน API ระดับ 24 |
half length(half4 v); | เพิ่มใน API ระดับ 24 |
คำนวณความยาวของเวกเตอร์
ดูข้อมูลเพิ่มเติมได้ที่ fast_length(), native_length()
native_distance : ระยะทางโดยประมาณระหว่าง 2 จุด
float native_distance(float left_vector, float right_vector); | เพิ่มใน API ระดับ 21 |
float native_distance(float2 left_vector, float2 right_vector); | เพิ่มใน API ระดับ 21 |
float native_distance(float3 left_vector, float3 right_vector); | เพิ่มใน API ระดับ 21 |
float native_distance(float4 left_vector, float4 right_vector); | เพิ่มใน API ระดับ 21 |
half native_distance(half left_vector, half right_vector); | เพิ่มใน API ระดับ 24 |
half native_distance(half2 left_vector, half2 right_vector); | เพิ่มใน API ระดับ 24 |
half native_distance(half3 left_vector, half3 right_vector); | เพิ่มใน API ระดับ 24 |
half native_distance(half4 left_vector, half4 right_vector); | เพิ่มใน API ระดับ 24 |
คํานวณระยะทางโดยประมาณระหว่าง 2 จุด
ดูข้อมูลเพิ่มเติมได้ที่ distance(), fast_distance()
native_length : ความยาวโดยประมาณของเวกเตอร์
float native_length(float v); | เพิ่มใน API ระดับ 21 |
float native_length(float2 v); | เพิ่มใน API ระดับ 21 |
float native_length(float3 v); | เพิ่มใน API ระดับ 21 |
float native_length(float4 v); | เพิ่มใน API ระดับ 21 |
half native_length(half v); | เพิ่มใน API ระดับ 24 |
half native_length(half2 v); | เพิ่มใน API ระดับ 24 |
half native_length(half3 v); | เพิ่มใน API ระดับ 24 |
half native_length(half4 v); | เพิ่มใน API ระดับ 24 |
คํานวณความยาวโดยประมาณของเวกเตอร์
โปรดดู length(), fast_length() ด้วย
native_normalize : ปรับค่าเวกเตอร์ให้ใกล้เคียงกับค่าเฉลี่ย
float native_normalize(float v); | เพิ่มใน API ระดับ 21 |
float2 native_normalize(float2 v); | เพิ่มใน API ระดับ 21 |
float3 native_normalize(float3 v); | เพิ่มใน API ระดับ 21 |
float4 native_normalize(float4 v); | เพิ่มใน API ระดับ 21 |
half native_normalize(half v); | เพิ่มใน API ระดับ 24 |
half2 native_normalize(half2 v); | เพิ่มใน API ระดับ 24 |
half3 native_normalize(half3 v); | เพิ่มใน API ระดับ 24 |
half4 native_normalize(half4 v); | เพิ่มใน API ระดับ 24 |
ปรับเวกเตอร์ให้เป็นมาตรฐานโดยประมาณ
ดูnormalize(), fast_normalize() ด้วย
normalize : ปรับให้เป็นมาตรฐานสำหรับเวกเตอร์
float normalize(float v); | |
float2 normalize(float2 v); | |
float3 normalize(float3 v); | |
float4 normalize(float4 v); | |
half normalize(half v); | เพิ่มใน API ระดับ 24 |
half2 normalize(half2 v); | เพิ่มใน API ระดับ 24 |
half3 normalize(half3 v); | เพิ่มใน API ระดับ 24 |
half4 normalize(half4 v); | เพิ่มใน API ระดับ 24 |
ทำให้เวกเตอร์เป็นมาตรฐาน
สำหรับเวกเตอร์ขนาด 1 จะแสดงผล -1.f สำหรับค่าติดลบ, 0.f สำหรับค่า Null และ 1.f สำหรับค่าบวก
ดูข้อมูลเพิ่มเติมได้ที่ fast_normalize(), native_normalize()