블로그 이미지
래머
오늘도 열심히 개발하는 개발자입니다.

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Notice

2014. 5. 2. 01:18 C/C++



hlsl 함수 비공개 3d관련 자료

2009/07/16 01:30 수정 삭제

작성자: 그라센(choi98772)

복사 http://blog.naver.com/choi98772/memo/130064811122

DirectX HLSL함수

놀 것 2008/01/29 03:11
absvalue abs(value a)절대치 (성분마다).
acosacos(x)x 의 각 성분의 역코사인을 돌려준다. 각 성분은,[-1, 1] 의 범위로 한다.
allall(x)x 의 모든 성분이 0 이외의 값인지 아닌지를 테스트한다.
anyany(x)x 의 몇개의 성분이 0 이외의 값인지 아닌지를 테스트한다.
asinasin(x)x 의 각 성분의 역정현을 돌려준다. 각 성분은,[-pi/2, pi/2] 의 범위로 한다.
atanatan(x)x 의 각 성분의 역탄젠트를 돌려준다. 반환값은,[-pi/2, pi/2] 의 범위이다.
atan2atan2(y, x)y/x 의 역탄젠트를 돌려준다. y 와 x 의 부호를 사용해 [-pi, pi] 의 범위에 있는 반환값의 상한을 판단한다. atan2 는, x 가 0 으로 동일하고, y 가 0 으로 동일하지 않은 경우에서도, 원점 이외의 각 점에 대해서 충분히 정의되고 있다.
ceilceil(x)x 이상의 최소의 정수를 돌려준다.
clampclamp(x, min, max)x 를 [min, max] 의 범위에 제한한다.
clipclip(x)x 의 몇개의 성분이 0 보다 작은 경우, 현재의 픽셀을 파기한다. x 의 각 성분이 면으로부터의 거리를 나타내는 경우, 이 함수를 사용해, 클립면을 시뮬레이션 한다.
coscos(x)x 의 코사인을 돌려준다.
coshcosh(x)x 의 쌍곡코사인을 돌려준다.
crosscross(a, b)2 개의 3D 벡터 a 와 b 의 외적을 돌려준다.
D3DCOLORtoUBYTE4D3DCOLORtoUBYTE4(x)4D 벡터 x 의 성분을 교체 및 스케일링 해, 일부 하드웨어에 있는 UBYTE4 지원의 부족을 보정한다.
ddxddx(x)스크린 공간의 x 좌표에 대해, x 의 편미분을 돌려준다.
ddyddy(x)스크린 공간의 y 좌표에 대해, x 의 편미분을 돌려준다.
degreesdegrees(x)x 를 라디안 단위로부터 도수로 변환한다.
determinantdeterminant(m)서방 행렬 m 의 행렬식을 돌려준다.
distancedistance(a, b)2 개의 점 a 와 b 간의 거리를 돌려준다.
dotdot(a, b)2 개의 벡터 a 와 b 의 내적을 돌려준다.
expexp(x)e 를 바닥으로 하는 지수 ex 를 돌려준다.
exp2value exp2(value a)2 를 바닥으로 하는 지수 (성분마다).
faceforwardfaceforward(n, i, ng)-n * sign(dot(i, ng))를 돌려준다.
floorfloor(x)x 이하의 최대의 정수를 돌려준다.
fmodfmod(a, b)a = i * b + f 가 되는 것 같은, a / b 의 부동 소수점수(실수)의 잉여 f 를 돌려준다. 여기서, i 는 정수, f 는 x 와 부호가 같아, 그 절대치는 b 의 절대치보다 작다.
fracfrac(x)f 가 0 보다 크고, 1 보다 작은 값이 되는 것 같은, x 의 소수부 f 를 돌려준다.
frcvalue frc(value a)소수부 (성분마다).
frexpfrexp(x, out exp)x 의 가수와 지수를 돌려준다. frexp 는 가수를 돌려주어, 지수는 출력 인수 exp 에 저장 된다. x 가 0 의 경우, 함수는 가수와 지수의 양쪽 모두에 0 을 돌려준다.
fwidthfwidth(x)abs(ddx(x)) +abs(ddy(x))를 돌려준다.
isfiniteisfinite(x)x 가 유한의 경우는 TRUE 를 돌려준다. 그 이외의 경우는 FALSE 를 돌려준다.
isinfisinf(x)x 가 +INF 나 -INF 의 경우는 TRUE 를 돌려준다. 그 이외의 경우는 FALSE 를 돌려준다.
isnanisnan(x)x 가 NAN 나 QNAN 의 경우는 TRUE 를 돌려준다. 그 이외의 경우는 FALSE 를 돌려준다.
ldexpldexp(x, exp)x * 2exp 를 돌려준다.
lenfloat len(value a)벡터의 길이.
lengthlength(v)벡터 v 의 길이를 돌려준다.
lerplerp(a, b, s)a + s(b - a)를 돌려준다. 이 함수는, s 가 0 의 경우는 a 를 돌려주어, 1 의 경우는 b 를 돌려주도록, a 와 b 의 사이를 선형 보간 한다.
litlit(ndotl, ndoth, m)조명의 벡터 (앰비언트, 디퓨즈, 스펙큐러, 1)를 돌려준다. 앰비언트 = 1; 디퓨즈 = (ndotl < 0) ? 0 : ndotl; 스펙큐러 = (ndotl < 0) || (ndoth < 0) ? 0 : (ndoth * m);
loglog(x)x 의, 바닥이 e 의 자연대수를 돌려준다. x 가 부의 경우, 이 함수는 무한을 돌려준다. x 가 0 의 경우, +INF 를 돌려준다.
log10log10(x)x 의, 바닥이 10 의 자연대수를 돌려준다. x 가 부의 경우, 이 함수는 무한을 돌려준다. x 가 0 의 경우, +INF 를 돌려준다.
log2log2(x)x 의, 바닥이 2 의 자연대수를 돌려준다. x 가 부의 경우, 이 함수는 무한을 돌려준다. x 가 0 의 경우, +INF 를 돌려준다.
maxmax(a, b)a 와 b 의 큰 (분)편을 선택한다.
minmin(a, b)a 와 b 가 작은 (분)편을 선택한다.
modfmodf(x, out ip)값 x 를, 각각이 x 와 같은 부호를 가진 소수부와 정수부로 나눈다. x 의 부호 첨부 소수부가 반환된다. 정수부는 출력 인수 ip 에 저장 된다.
mulmul(a, b)a 와 b 의 사이의 행렬 곱셈을 실행한다. a 가 벡터의 경우, 행 벡터로서 처리한다. b 가 벡터의 경우, 열로서 처리한다. 내부 넓이의 a 열과 b 행은 동일해야 한다. a 행 x b 열의 넓이를 얻을 수 있다.
noisenoise(x)처리되지 않다.
normalizenormalize(v)정규화된 벡터 v / length(v)를 돌려준다. v 의 길이가 0 의 경우, 결과는 무한이 된다.
powpow(x, y)xy 를 돌려준다.
radiansradians(x)x 를 도수로부터 라디안 단위로 변환한다.
reflectreflect(i, n)입사 방향 i, 표면 법선 n 로 했을 경우의, v = i - 2 * dot(i, n) * n 에 의해 구할 수 있는, 반사 벡터 v 를 돌려준다.
refractrefract(i, n, eta)입사 방향 i, 표면 법선 n, 굴절 eta 의 상대 인덱스가 주어졌을 경우의, 굴절 벡터 v 를 돌려준다. i 와 n 의 사이의 입사각이 지정된 eta 보다 너무 크면 (0,0,0)를 돌려준다.
roundround(x)x 를 가장 가까운 정수에 말다.
rsqrtrsqrt(x)1 / sqrt(x)를 돌려준다.
saturatesaturate(x)x 를 [0, 1] 의 범위에 제한한다.
signsign(x)x 의 부호를 요구한다. x 가 0 보다 작은 경우는 -1, 0 으로 동일한 경우는 0, 0 보다 큰 경우는 1 을 돌려준다.
sinsin(x)x 의 정현을 돌려준다.
sincossincos(x, out s, out c)x 의 정현과 코사인을 돌려준다. sin(x)는 출력 인수 s 에 저장 되어 cos(x)는 출력 인수 c 에 저장 된다.
sinhsinh(x)x 의 쌍곡정현을 돌려준다.
smoothstepsmoothstep(min, max, x)x < min 의 경우는 0 을 돌려준다. x > max 의 경우는 1 을 돌려준다. x 가 [min, max] 의 범위내이면, 0 으로 1 의 사이의 매끄러운 에르미트 보간을 돌려준다.
sqrtvalue sqrt(value a)제곱근 (성분마다).
stepstep(a, x)(x >= a) ? 1 : 0 을 돌려준다.
tantan(x) x 의 탄젠트를 돌려준다.
tanhtanh(x)x 의 쌍곡탄젠트를 돌려준다.
tex1Dtex1D(s, t)1D 의 텍스처 참조. s 는 샘플러 또는 sampler1D 개체. t 는 스칼라-.
tex1Dtex1D(s, t, ddx, ddy)미분을 지정한, 1D 의 텍스처 참조. s 는 샘플러 또는 sampler1D 개체. t, ddx, ddy 는 스칼라-.
tex1Dprojtex1Dproj(s, t)1D 의 투영 텍스처 참조. s 는 샘플러 또는 sampler1D 개체. t 는 4D 벡터. t 는, 참조가 실행되기 직전의 성분으로 나눗셈 된다.
tex1Dbiastex1Dbias(s, t)1D 의 바이어스 텍스처 참조. s 는 샘플러 또는 sampler1D 개체. t 는 4D 벡터. 참조를 실행하기 전에, 밉레벨에 t.w 의 바이어스를 걸칠 수 있다.
tex2Dtex2D(s, t)2D 의 텍스처 참조. s 는 샘플러 또는 sampler2D 개체. t 는 2D 텍스처 좌표.
tex2Dtex2D(s, t, ddx, ddy)미분을 지정한, 2D 의 텍스처 참조. s 는 샘플러 또는 sampler2D 개체. t, ddx, ddy 는 2D 벡터.
tex2Dprojtex2Dproj(s, t)2D 의 투영 텍스처 참조. s 는 샘플러 또는 sampler2D 개체. t 는 4D 벡터. t 는, 참조가 실행되기 직전의 성분으로 나눗셈 된다.
tex2Dbiastex2Dbias(s, t)2D 의 바이어스 텍스처 참조. s 는 샘플러 또는 sampler2D 개체. t 는 4D 벡터. 참조를 실행하기 전에, 밉레벨에 t.w 의 바이어스를 걸칠 수 있다.
tex3Dtex3D(s, t)3D 의 볼륨 텍스처 참조. s 는 샘플러 또는 sampler3D 개체. t 는 3D 텍스처 좌표.
tex3Dtex3D(s, t, ddx, ddy)미분을 지정한, 3D 의 볼륨 텍스처 참조. s 는 샘플러 또는 sampler3D 개체. t, ddx, ddy 는 3D 벡터.
tex3Dprojtex3Dproj(s, t)3D 의 투영 볼륨 텍스처 참조. s 는 샘플러 또는 sampler3D 개체. t 는 4D 벡터. t 는, 참조가 실행되기 직전의 성분으로 나눗셈 된다.
tex3Dbiastex3Dbias(s, t)3D 의 바이어스 텍스처 참조. s 는 샘플러 또는 sampler3D 개체. t 는 4D 벡터. 참조를 실행하기 전에, 밉레벨에 t.w 의 바이어스를 걸칠 수 있다.
texCUBEtexCUBE(s, t)3D 의 큐브 텍스처 참조. s 는 샘플러 또는 samplerCUBE 개체. t 는 3D 텍스처 좌표.
texCUBEtexCUBE(s, t, ddx, ddy)미분을 지정한, 3D 의 큐브 텍스처 참조. s 는 샘플러 또는 samplerCUBE 개체. t, ddx, ddy 는 3D 벡터.
texCUBEprojtexCUBEproj(s, t)3D 투영의 큐브 텍스처 참조. s 는 샘플러 또는 samplerCUBE 개체. t 는 4D 벡터. t 는, 참조가 실행되기 직전의 성분으로 나눗셈 된다.
texCUBEbiastexCUBEbias(s, t)3D 의 바이어스 큐브 텍스처 참조. s 는 샘플러 또는 samplerCUBE 개체. t 는 4D 벡터. 참조를 실행하기 전에, 밉레벨에 t.w 의 바이어스를 걸칠 수 있다.
transposetranspose(m)행렬 m 의 전치행렬을 돌려준다. 입력의 넓이가 m 행 x m 열의 경우, 결과는 넓이 m 열 x m 행이 된다.





posted by 래머