http://blog.naver.com/dieofflee/220074075105

유니티 Shader에서 사용되는 다양한 함수들이 있습니다

그중 Cg수학 함수만 먼저 정리해보도록 하겠습니다

Unity에서 제공하는 Mathf 함수와 비슷하다고 생각하시면 됩니다

 

생각보다 많고 쓰이는 것들은 몇개 안되는데다 수학이라 하니 머리부터 아파지지만 조금씩 정리해서 올리도록 하겠습니다

(저도 다 모르는 상황이라 올리는게 맞는지 모르겠지만 그래도 정리하면 나중에 찾아 쓸수 있어서 정리합니다)

 

 

 

 Function

설명 

 abs( x )

 절대값 x를 반환합니다

 acos ( x )

 아크코사인 값으로 x가 [-1 ~ 1]일때. [0 ~ p​] 를 반환합니다. 

 

 all ( x )

 x의 모든 구성요소가 0이 아닐때 true를 반환하고 그 외의 값일때는 false를 반환합니다.

 any ( x )

 x의 구성요소가 0이 아닐때 true를 반환하고 그 외의 값일때는 false를 반환합니다

 

 asine ( x )

 아크사인 값으로 x가 [-1 ~ 1] 일떄, [p/2 ~ p/2] 를 반환합니다

 atan ( x )

 아크탄젠트 값으로 x값(-∞ < x < )에 따라 [p/2 ~ p/2] 에 무한히 가까운 값을 반환합니다 

 atan2 ( x )

 아크탄젠트 값으로 atan과 같지만 밑변분의 높이값으로 계산하면 반환

 ceil ( x ) 

 x 이상인 값중에 가장 작은 정수값을 반환

 clamp (x , a, b)

 x가 a보다 낮으면 a반환, x가 b보다 크면 b반환, 그 사이값이면 x를 반환

 cos ( x )

 코사인 x값을 반환

 cosh ( x )

 하이퍼볼릭코사인(쌍곡선) x의 값을 반환

 cross ( a, b )

 a 벡터와 b 벡터의 외적을 반환

 degrees ( x )

 라디안을 도로 변환

 determinant ( m )

 행렬m의 행렬식(?)

 dot ( a, b )

 벡터 a와 벡터 b의 내적을 반환

 exp ( x )

 e의 x승 을 반환

 exp2 ( x )

 2의 x승 을 반환 

 floor ( x )

 x 보다 크지 않은 정수중 가장 큰 정수를 반환 (반 내림)

 fmod ( x, y )

 x 를 y 로 나누었을 때 나머지를 반환

 frac ( x )

 

 frexp ( x, out exp )

 

 isfinite ( x )

 x가 무한대수가 아니면 true를 반환 

 isinf ( x )

 x가 무한대수면 true를 반환 

 isnan ( x )

 x가 숫자가 아니면 true를 반환

 ldexp ( x, n )

 x * 2의 n승 을 반환 

 lerp ( a, b, f )

​벡터a 와 벡터b 의 선형보간으로 f가 0~1사이의 값을 넣어 a와 b의 비율에 맞는 벡터값 반환

 lit ( NdotL . NdotH , m)

 

 log ( x )

 자연로그 x의 값을 반환 (x는 0보다 커야함)

 log2 ( x )

 밑이 2인 로그 x의 값을 반환 (x는 0보다 커야함)

 log10 ( x )

 밑이 10인 로그 x의 값을 반환 (x는 0보다 커야함) 

 max ( a, b )

 a와 b의 값중에 큰 값을 반환 

 min ( a, b )

 a와 b의 값중에 작은 값을 반환 

 modf ( x , out ip )

 x를 정수와 소수로 나눠주는 함수로 정수는 ip에 저장, 소수부분을 반환

 mul ( M, N )

 햏렬 M과 행렬 N을 곱한값을 행렬로 반환 

 mul ( v , M )

 벡터v와 행렬M을 곱한값을  행렬로 반환

 mul ( M , v)

 행렬M과 벡터v를 곱한값을 벡터로 반환 

 noise ( x )

  

 pow ( x, y )

 x의 y승을 반환 (거듭제곱) x를 y만큼 곱한다

 radians ( x )

 x도를 라디안으로 변환하여 반환

 round ( x )

 x와 가장 가까운 정수값을 반환 (반내림 혹은 반올림) 

 rsqrt ( x )

 루트x 를 반환한다. (x는 0보다 커야한다)

 saturate ( x )

 clamp (x , 0.0f, 1.0f)를 반환한다

 sign ( x )

 x가 양수면 1, x가 음수면 -1, 0이면 0을 반환

 sin ( x )

 사인 x값을 반환 

 sincos( x, out s, out c )

 s에는 사인x값, c에는 코사인x값이 들어간다. sin(x), cos(x)를 각각 계산하는것보다 효율적이다

 sinh ( x )

 하이퍼볼릭 사인 x의 값을 반환 

 smoothstep ( min, max, x )

 min과 max값을 보간해주며 x의 값이 0.0f에서 1.0f의 값을 가지며 x가 1.0f에 가까울 수록 적은 보간이 된다

 step ( a, x )

 x 가 a보다 작으면 0을 반환, x가 a보다 크거나 같으면 1을 반환 

 sqrt ( x )

 x의 제곱근을 반환 (x는 0보다 커야 한다)

 tan ( x )

 탄젠트x를 반환 

 tanh ( x )

 하이퍼볼릭 탄젠트 x를 반환 

 transpose ( m )

 행렬M의 전치행렬M을 반환

 

 

 

 


'게임개발 > Shader' 카테고리의 다른 글

Writing vertex and fragment shaders  (0) 2015.10.04
Surface Shader  (0) 2015.10.04
Surface Shader 기하함수 및 Texture 함수  (0) 2015.10.04
ShaderLab syntax: Culling & Depth Testing  (0) 2015.10.04
AlphaTest  (0) 2015.10.04

+ Recent posts