概要
これらの関数は、入力引数を N 次元空間のベクトル表現として解釈します。
32 ビット浮動小数点数に対する数学演算の精度は、rs_fp_relaxed プラグと rs_fp_full プラグマの影響を受けます。詳細については、数学定数と関数をご覧ください。
一般的な数学関数のバリエーションを使用すると、精度と速度のトレードオフを実現できます。名前が
- native_: 精度が低いカスタム ハードウェア実装が含まれる可能性があります。さらに、異常な値がゼロにフラッシュされたり、ゼロへの丸めが使用されたり、NaN 入力と無限大入力が正しく処理されない場合があります。
- fast_: 16 ビット浮動小数点数を使用して内部計算を実行できます。さらに、正常でない値はゼロにフラッシュされ、ゼロへの丸めを使用できます。
まとめ
| 関数 | |
|---|---|
| cross | 2 つのベクトルの外積 |
| distance | 2 点間の距離 |
| ドット | 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 weight(float3 left_vector, float3 right_vector); | |
| float distance(float4 left_vector, float4 right_vector); | |
| halfDistance(half left_vector, half right_vector); | API レベル 24 で追加されました |
| halfDistance(half2 left_vector, half2 right_vector); | API レベル 24 で追加されました |
| halfDistance(half3 left_vector, half3 right_vector); | API レベル 24 で追加されました |
| halfDistance(half4 left_vector, half4 right_vector); | API レベル 24 で追加されました |
2 点間の距離を計算します。
fast_distance()、native_distance() もご覧ください。
ドット : 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 で追加されました |
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 で追加されました |
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、null 値の場合は 0.f、正の値の場合は 1.f を返します。
精度は、16 ビット浮動小数点値を使用して計算を行うことで期待される値です。
normalize()、native_normalize() もご覧ください。
length : ベクトルの長さ
| float length(float v); | |
| float length(float2 v); | |
| float length(float3 v); | |
| float length(float4 v); | |
| half レングス(half v) | API レベル 24 で追加されました |
| half の長さ(half2 v) | API レベル 24 で追加されました |
| half 長さ(half3 v) | API レベル 24 で追加されました |
| half レングス(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、null 値の場合は 0.f、正の値の場合は 1.f を返します。
fast_normalize()、native_normalize() もご覧ください。