Hàm toán học vectơ RenderScript

Tổng quan

Các hàm này diễn giải các đối số đầu vào là đại diện của vectơ trong không gian n chiều.

Độ chính xác của các phép toán trên số thực 32 bit chịu ảnh hưởng của các pragmas rs_FP_relaxed và rs_FP_full. Xem Hằng số và hàm toán học để biết chi tiết.

Bạn có thể đạt được nhiều sự đánh đổi về độ chính xác/tốc độ bằng cách sử dụng các biến thể của các hàm toán học phổ biến. Các hàm có tên bắt đầu bằng

  • native_: Có thể có các phương pháp triển khai phần cứng tuỳ chỉnh với độ chính xác thấp hơn. Ngoài ra, các giá trị bất thường có thể được đẩy về 0, làm tròn về 0, đồng thời NaN và phương thức nhập vô cực có thể không được xử lý chính xác.
  • nhanh_: Có thể thực hiện các phép tính nội bộ bằng số thực 16 bit. Ngoài ra, các giá trị bất thường có thể được đẩy về 0 và có thể được làm tròn về 0.

Tóm tắt

Hàm
giao diện người dùng Tích chéo của hai vectơ
distance (khoảng cách) Khoảng cách giữa hai điểm
dấu chấm Tích chấm của hai vectơ
fast_distance Khoảng cách gần đúng giữa hai điểm
fast_length Độ dài gần đúng của vectơ
fast_normalize Vectơ chuẩn hoá gần đúng
length Độ dài của vectơ
native_distance Khoảng cách gần đúng giữa hai điểm
native_length Độ dài gần đúng của vectơ
native_normalize Chuẩn hoá gần đúng một vectơ
chuẩn hoá Chuẩn hoá vectơ

Hàm

cross : Tích chéo của hai vectơ

float3 chéo(float3 left_vectơ, float3 phải_vectơ);
float4 chéo(float4 left_vectơ, float4 phải_vectơ);
half3 chéo(half3 bên trái_vectơ, half3 bên phải_vectơ); Đã thêm vào API cấp 24
half4 chéo(half4 bên trái_vectơ, half4 bên phải_vectơ); Đã thêm vào API cấp 24

Tính tích chéo của hai vectơ.

distance : Khoảng cách giữa hai điểm

khoảng cách số thực(nổi bên trái, vectơ bên phải của vectơ);
khoảng cách số thực(float2 left_vectơ, float2 right_vectơ);
khoảng cách độ chính xác đơn(float3 left_vectơ, float3 right_vectơ);
khoảng cách độ chính xác đơn(float4 left_vectơ, float4 right_vectơ);
nửa khoảng cách(một_nửa vectơ_trái_phải, một_nửa_vec_tơ bên phải); Đã thêm vào API cấp 24
một nửa khoảng cách(half2 left_vectơ bên trái, half2 bên phải_vectơ); Đã thêm vào API cấp 24
half khoảng cách(half3 bên trái_vectơ, half3 bên phải_vectơ); Đã thêm vào API cấp 24
nửa khoảng cách(half4 bên trái_vectơ, half4 bên phải_vectơ); Đã thêm vào API cấp 24

Tính khoảng cách giữa hai điểm.

Xem thêm fast_distance(), native_distance().

dấu chấm : Tích dấu chấm của hai vectơ

dấu chấm nổi(vectơ bên trái, dấu phẩy động bên phải);
dấu chấm tròn(float2 left_vectơ, float2 right_vectơ);
dấu chấm phẩy(float3 left_vectơ, float3 right_vectơ);
dấu chấm phẩy(float4 left_vectơ, float4 right_vectơ);
nửa chấm(một_nửa_vectơ_bên trái, một_nửa_vec_tơ bên phải); Đã thêm vào API cấp 24
nửa chấm(half2 bên trái_vectơ, half2 bên phải_vectơ); Đã thêm vào API cấp 24
nửa chấm(half3 bên trái_vectơ, half3_vectơ bên phải); Đã thêm vào API cấp 24
nửa chấm(half4 bên trái_vectơ, half4_vectơ bên phải); Đã thêm vào API cấp 24

Tính tích vô hướng của hai vectơ.

fast_distance : Khoảng cách gần đúng giữa hai điểm

float nhanh_distance(float_Vector_vectơ, nổi bên phải_vectơ); Đã thêm vào API cấp 17
float nhanh_distance(float2_vectơ bên trái, float2 right_vectơ); Đã thêm vào API cấp 17
float nhanh_distance(float3 các vectơ_trái_tim, float3 right_vectơ); Đã thêm vào API cấp 17
float nhanh_distance(float4 các vectơ_trái_tim, float4 right_vectơ); Đã thêm vào API cấp 17

Tính toán khoảng cách gần đúng giữa hai điểm.

Độ chính xác này đúng như dự kiến khi thực hiện tính toán bằng các giá trị dấu phẩy động 16 bit.

Hãy xem thêm distance(), native_distance().

fast_length : Độ dài gần đúng của vectơ

độ chính xác nhanh_length(float v); Đã thêm vào API cấp 17
float nhanh_length(float2 v); Đã thêm vào API cấp 17
float nhanh_length(float3 v); Đã thêm vào API cấp 17
float nhanh_length(float4 v); Đã thêm vào API cấp 17

Tính toán độ dài gần đúng của vectơ.

Độ chính xác này đúng như dự kiến khi thực hiện tính toán bằng các giá trị dấu phẩy động 16 bit.

Xem thêm length(), native_length().

fast_normalize : Vectơ chuẩn hoá gần đúng

float nhanh_normalize(float v); Đã thêm vào API cấp 17
float2 nhanh_normalize(float2 v); Đã thêm vào API cấp 17
float3 nhanh_normalize(float3 v); Đã thêm vào API cấp 17
float4 nhanh_normalize(float4 v); Đã thêm vào API cấp 17

Chuẩn hoá gần đúng một vectơ.

Đối với các vectơ có kích thước 1, hãy trả về -1.f cho các giá trị âm, 0.f cho các giá trị rỗng và 1.f cho các giá trị dương.

Độ chính xác này đúng như dự kiến khi thực hiện tính toán bằng các giá trị dấu phẩy động 16 bit.

Hãy xem thêm các phương thức normalize(), native_normalize().

length : Độ dài của vectơ

độ dài số thực(float v);
độ dài số thực dấu phẩy động(float2 v);
độ dài số thực dấu phẩy động(float3 v);
độ dài số thực(float4 v);
nửa chiều dài(nửa v); Đã thêm vào API cấp 24
nửa chiều dài(half2 v); Đã thêm vào API cấp 24
nửa chiều dài(half3 v); Đã thêm vào API cấp 24
nửa chiều dài(half4 v); Đã thêm vào API cấp 24

Tính toán độ dài của vectơ.

Xem thêm fast_length(), native_length().

native_distance : Khoảng cách gần đúng giữa hai điểm

float native_distance(float_vectơ bên trái, float right_vectơ); Đã thêm vào API cấp 21
float native_distance(float2 left_vectơ, float2 right_vectơ); Đã thêm vào API cấp 21
float native_distance(float3 left_vectơ, float3 right_vectơ); Đã thêm vào API cấp 21
float native_distance(float4_vectơ bên trái, float4 right_vectơ); Đã thêm vào API cấp 21
nửa khoảng cách_gốc(một_nửa_vec_tơ_bên trái, một_nửa_vec_tơ bên phải); Đã thêm vào API cấp 24
half native_distance(half2 left_vectơ, half2 right_vectơ); Đã thêm vào API cấp 24
half native_distance(half3 left_vectơ, half3 right_vectơ); Đã thêm vào API cấp 24
half native_distance(half4 left_vectơ, half4 right_vectơ); Đã thêm vào API cấp 24

Tính toán khoảng cách gần đúng giữa hai điểm.

Hãy xem thêm distance(), fast_distance().

native_length : Độ dài gần đúng của vectơ

độ chính xác gốc_length(float v); Đã thêm vào API cấp 21
float native_length(float2 v); Đã thêm vào API cấp 21
float native_length(float3 v); Đã thêm vào API cấp 21
float native_length(float4 v); Đã thêm vào API cấp 21
nửa native_length(half v); Đã thêm vào API cấp 24
nửa native_length(half2 v); Đã thêm vào API cấp 24
nửa native_length(half3 v); Đã thêm vào API cấp 24
nửa native_length(half4 v); Đã thêm vào API cấp 24

Tính độ dài gần đúng của vectơ.

Xem thêm length(), fast_length().

native_normalize : Chuẩn hoá gần đúng một vectơ

float native_normalize(float v); Đã thêm vào API cấp 21
float2 native_normalize(float2 v); Đã thêm vào API cấp 21
float3 native_normalize(float3 v); Đã thêm vào API cấp 21
float4 native_normalize(float4 v); Đã thêm vào API cấp 21
half native_normalize(half v); Đã thêm vào API cấp 24
half2 native_normalize(half2 v); Đã thêm vào API cấp 24
half3 native_normalize(half3 v); Đã thêm vào API cấp 24
half4 native_normalize(half4 v); Đã thêm vào API cấp 24

Chuẩn hoá gần đúng một vectơ.

Hãy xem thêm các phương thức normalize(), fast_normalize().

chuẩn hoá : Chuẩn hoá một vectơ

float bình thường hoá(float v);
float2 chuẩn hoá(float2 v);
float3 chuẩn hoá(float3 v);
float4 chuẩn hoá(float4 v);
một nửa là chuẩn hoá(một nửa v); Đã thêm vào API cấp 24
half2 chuẩn hoá(half2 v); Đã thêm vào API cấp 24
half3 chuẩn hoá(half3 v); Đã thêm vào API cấp 24
half4 chuẩn hoá(half4 v); Đã thêm vào API cấp 24

Chuẩn hoá một vectơ.

Đối với các vectơ có kích thước 1, hãy trả về -1.f cho các giá trị âm, 0.f cho các giá trị rỗng và 1.f cho các giá trị dương.

Hãy xem thêm fast_normalize(), native_normalize().