RenderScript 벡터 수학 함수

개요

이러한 함수는 입력 인수를 N차원 공간에서 벡터의 표현으로 해석합니다.

32비트 부동 소수점 수에서 수학 연산의 정밀도는 pragmas rs_fp_relaxed 및 rs_fp_full의 영향을 받습니다. 자세한 내용은 수학적 상수 및 함수를 참조하세요.

일반적인 수학 함수의 변형을 사용하면 다양한 정밀도/속도 절충점을 달성할 수 있습니다. 이름이 다음으로 시작하는 함수

  • native_: 정확도가 낮은 맞춤 하드웨어 구현이 있을 수 있습니다. 또한 준정규 값은 0으로 플러시되고, 0을 향한 반올림을 사용할 수 있으며, NaN 및 무한대 입력이 올바르게 처리되지 않을 수 있습니다.
  • fast_: 16비트 부동 소수점 수를 사용하여 내부 계산을 수행할 수 있습니다. 또한 비정규 값을 0으로 플러시하고 0을 향한 반올림을 사용할 수 있습니다.

요약

함수
교차 두 벡터의 교차곱
거리 두 지점 사이의 거리
두 벡터의 내적
빠른_거리 두 지점 사이의 대략적인 거리
fast_length 대략적인 벡터 길이
fast_normalize 대략적인 정규화된 벡터
길이 벡터 길이
native_distance 두 지점 사이의 대략적인 거리
native_length[네이티브_길이] 대략적인 벡터 길이
native_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에 추가되었습니다.

두 벡터의 교차곱을 계산합니다.

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()도 참고하세요.

: 두 벡터의 내적

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, 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 length(half2 v); API 수준 24에 추가되었습니다.
half 길이(half3 v); API 수준 24에 추가되었습니다.
half 길이(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 : 벡터 정규화

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()도 참조하세요.