함수 |
내용 |
sample2D |
2D Texture |
sample3D |
3D Texutre |
float4 |
32 bit : Vector에 주로 쓰임 |
half4 |
16 bit : Color값에 주로 쓰임 (모바일 지원) |
fixed4 | 8 bit : Color 값에 주로 쓰임 (모바일 지원 안함) |
tex2D(s, t) |
텍스쳐 샘플링에 사용하는 HLSL 함수. 첫 번째 인자에서 두 번째 인자 좌표에 있는 텍셀을 구하는 함수. s는 샘플러 또는 sampler2D 개체 (Texture), t는 2D 텍스처 좌표 (UV) |
tex2D(s, t, ddx, ddy) |
2D의 투영 텍스처 참조 |
ddx(x), ddy(x) |
스크린공간의 x, y 좌표에 대한 x, y의 편미분을 리턴한다 |
reflect(i, n) |
반사벡터를 리턴한다. 입사 방향 i, 표면 법선 n로 했을 경우, v = i - 2 * dot(i, n) * n 에 의해 구할 수 있는 반사 벡터 v를 리턴한다 |
cross(x,y) |
두 벡터의 외적을 계산한다. 두 인자값과 리턴값은 모두 float3 타입이다. |
transpose(m) |
m의 전치행렬을 리턴한다. |
determinant(m) |
|
dot(x,y) |
두 벡터의 내적을 계산한다. |
normalize(x) |
정규화된 벡터를 리턴한다. 즉, 리턴값은 x/length(x) 와 동일하다. |
len(x) |
벡터의 길이 |
distance(x,y) |
두 벡터의 거리를 계산한다. |
sin(x), cos(x), tan(x) |
기본삼각함수 |
asin(x), acos(x), atan(x) |
x의 각 성분의 역삼각함수. |
atan2(y,x) |
atan(y/x)에 해당하는 함수로, atan(x)는 [-π/2, π/2]의 범위의 값을 가지지만, atan2(y,x)는 [-π, π]의 값을 리턴한다. |
radians(x) |
각도 단위의 x값에 해당하는 라디안값을 리턴한다. |
degrees(x) |
라디안 단위의 x값에 해당하는 각도값을 리턴한다. |
sincos(x,s,c) |
sin(x)와 cos(x)를 동시에 s, c로 리턴한다. 여기서 s, c는 x와 동일한 차원의 타입이어야 한다. |
sinh(x), cosh(x), tanh(x) |
|
sqrt(x) |
제곱근 |
rsqrt(x) |
제곱근의 역수(1 / sqrt(x)) |
clamp(x, min, max) |
x를 [min, max] 범위로 클램프한다. 즉, x가 범위안에 있으면 x를 그대로 리턴하지만, min보다 작으면 min을, max보다 크면 max를 리턴한다. |
max(x,y), min(x,y) |
최대, 최소값 |
saturate(x) |
x를 [0, 1] 범위로 클램프(0~1을 넘어서는 값을 짤라 냄)한다. |
smoothstep(min,max,x) |
x가 [min, max] 사이의 값인 경우에 대해서 [0, 1] 사이에서 부드럽게 변하는 Hermite 보간법을 리턴한다. x가 min보다 작다면 0을 리턴하고, max보다 크다면 1을 리턴한 |
asfloat(x) |
입력인자값을 float 타입으로 바꾼다. |
asint(x) |
입력인자값을 int 타입으로 바꾼다. |
asuint(x) |
입력인자값을 uint 타입으로 바꾼다. |
fmod(x,y) |
x/y의 나머지를 실수로 리턴한다. |
frac(x) |
x의 소수점 이하 부분을 리턴한다. |
|
|
'Shader' 카테고리의 다른 글
ShaderLab 구문 (Unity) (0) | 2018.11.05 |
---|---|
Unity3D Shader 방식 (0) | 2018.11.05 |
스크립트에서 쉐이더에 변수 전달하기. (0) | 2017.08.25 |
#02. 일단 용어 픽셀셰이더, 버텍스 셰이더 (0) | 2017.08.09 |
#1 어찌하다보니 쉐이더도 해야 하는 상황이 왔넹.. (0) | 2017.08.09 |