פונקציות מתמטיות של וקטור ב-RenderScript

סקירה כללית

הפונקציות האלה מפרשות את ארגומנטי הקלט כמייצגים של וקטורים במרחב 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().