סקירה כללית
הפונקציות האלה מפרשות את ארגומנטי הקלט כמייצגים של וקטורים במרחב n-ממדי.
הדיוק של הפעולות המתמטיות על ערכים של 32 ביט עם נקודה צפה מושפע מהפראגמות rs_fp_relaxed ו-rs_fp_full. פרטים נוספים זמינים במאמר פונקציות וקבועים מתמטיים.
אפשר להשיג איזון שונה בין דיוק למהירות באמצעות וריאנטים של פונקציות מתמטיות נפוצות. פונקציות עם שם שמתחיל ב-
- native_: יכול להיות שיהיו לו הטמעות חומרה בהתאמה אישית עם דיוק נמוך יותר. בנוסף, ייתכן שערכים רגילים חלקית יוסרו ל-0, יתבצע עיגול ל-0 וייתכן שלא תתבצע טיפול נכון בקלט של NaN ושל אינסוף.
- fast_: יכול לבצע חישובים פנימיים באמצעות 16 ביט של פלוט. בנוסף, ייתכן שערכים רגילים למחצה יוסרו לאפס, וייתכן שייעשה שימוש בעיגול לאפס.
סיכום
פונקציות | |
---|---|
cross | המכפלה הווקטורית (cross product) של שני וקטורים |
distance | המרחק בין שתי נקודות |
נקודה | מכפלה סקלרית של שני וקטורים |
fast_distance | המרחק המשוער בין שתי נקודות |
fast_length | האורך המשוער של וקטור |
fast_normalize | וקטור מנורמלי משוער |
length | אורך וקטור |
native_distance | המרחק המשוער בין שתי נקודות |
native_length | האורך המשוער של וקטור |
native_normalize | נורמליזציה של וקטור באופן משוער |
normalize | נורמליזציה של וקטור |
פונקציות
cross : מכפלה וקטורית של שני וקטורים
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 |
חישוב המכפלה הווקטורית (cross product) של שני וקטורים.
distance : המרחק בין שתי נקודות
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 |
חישוב המרחק בין שתי נקודות.
ראו גם fast_distance(), native_distance().
dot : מכפלת שני וקטורים
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 |
חישוב המכפלה הסקלרית של שני וקטורים.
fast_distance : המרחק המשוער בין שתי נקודות
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 |
חישוב המרחק המשוער בין שתי נקודות.
רמת הדיוק היא זו שצפויה מהחישוב באמצעות ערכים של נקודה צפה באורך 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 : המרחק המשוער בין שתי נקודות
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 |
חישוב המרחק המשוער בין שתי נקודות.
ראו גם 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 : נרמול וקביעת אורך שלוקח ערך של 1 למשתנה וקטורי
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().