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().