내장 함수

다음 표에는 HLSL에서 사용할 수 있는 내장 함수가 나열되어 있습니다. 각 함수에는 간략한 설명과 입력 인수 및 반환 형식에 대한 자세한 내용이 있는 참조 페이지에 대한 링크가 있습니다.

속성 설명 최소 셰이더 모델
abort 실행 중인 현재 그리기 또는 디스패치 호출을 종료합니다. 4
abs 절대값(성분당)입니다.
acos x의 각 성분의 아크코사인을 반환합니다.
all x의 모든 성분이 0이 아닌지 테스트합니다.
AllMemoryBarrier 모든 메모리 액세스가 완료될 때까지 그룹의 모든 스레드 실행을 차단합니다. 5
AllMemoryBarrierWithGroupSync 모든 메모리 액세스가 완료되고 그룹의 모든 스레드가 이 호출에 도달할 때까지 그룹의 모든 스레드 실행을 차단합니다. 5
any x의 성분이 0이 아닌지 테스트합니다.
asdouble 캐스트 값을 double로 재해석합니다. 5
asfloat 입력 형식을 float로 변환합니다. 4
asin x의 각 성분의 아크사인을 반환합니다.
asint 입력 형식을 정수로 변환합니다. 4
asuint 64비트 형식의 비트 패턴을 uint로 재해석합니다. 5
asuint 입력 형식을 부호 없는 정수로 변환합니다. 4
atan x의 아크탄젠트를 반환합니다.
atan2 두 값(x,y)의 아크탄젠트를 반환합니다.
ceil x보다 크거나 같은 가장 작은 정수를 반환합니다.
CheckAccessFullyMapped Sample 또는 Load 작업의 모든 값이 타일 리소스의 매핑된 타일에 액세스했는지 확인합니다. 5
clamp x를 범위 [min, max]로 클램프합니다.
clip x의 성분이 0보다 작은 경우 현재 픽셀을 버립니다.
cos x의 코사인을 반환합니다.
cosh x의 쌍곡 코사인을 반환합니다.
countbits 입력 정수의 비트 수(성분당)를 계산합니다. 5
cross 두 3D 벡터의 외적을 반환합니다.
D3DCOLORtoUBYTE4 일부 하드웨어에서 UBYTE4 지원 부족을 보완하기 위해 4D 벡터 x의 성분을 swizzle 및 스케일링합니다.
ddx 화면 공간 x 좌표에 대한 x의 편도함수를 반환합니다.
ddx_coarse 화면 공간 x 좌표에 대해 낮은 정밀도 편도함수를 계산합니다. 5
ddx_fine 화면 공간 x 좌표에 대해 고정밀 편도함수를 계산합니다. 5
ddy 화면 공간 y 좌표에 대한 x의 편도함수를 반환합니다.
ddy_coarse 화면 공간 y 좌표에 대해 낮은 정밀도 편도함수를 계산합니다. 5
ddy_fine 화면 공간 y 좌표에 대해 고정밀 편도함수를 계산합니다. 5
degrees x를 라디안에서 각도로 변환합니다.
determinant 정사각 행렬 m의 행렬식을 반환합니다.
DeviceMemoryBarrier 모든 디바이스 메모리 액세스가 완료될 때까지 그룹의 모든 스레드 실행을 차단합니다. 5
DeviceMemoryBarrierWithGroupSync 모든 디바이스 메모리 액세스가 완료되고 그룹의 모든 스레드가 이 호출에 도달할 때까지 그룹의 모든 스레드 실행을 차단합니다. 5
distance 두 점 사이의 거리를 반환합니다.
dot 두 벡터의 내적을 반환합니다. 1
dst 거리 벡터를 계산합니다. 5
errorf 정보 큐에 오류 메시지를 제출합니다. 4
EvaluateAttributeCentroid 픽셀 중심에서 평가합니다. 5
EvaluateAttributeAtSample 인덱싱된 샘플 위치에서 평가합니다. 5
EvaluateAttributeSnapped 오프셋이 있는 픽셀 중심에서 평가합니다. 5
exp 밑이 e인 지수를 반환합니다.
exp2 밑이 2인 지수(성분당)입니다.
f16tof32 uint의 하위 절반에 저장된 float16을 float로 변환합니다. 5
f32tof16 입력을 float16 형식으로 변환합니다. 5
faceforward -n * sign(dot(i, ng))를 반환합니다.
firstbithigh 성분별로 최상위 비트에서 시작하여 아래쪽으로 작동하는 첫 번째 설정 비트의 위치를 가져옵니다. 5
firstbitlow 성분별로 최하위 비트부터 시작하여 위로 올라가는 첫 번째 설정 비트의 위치를 반환합니다. 5
floor x보다 작거나 같은 가장 큰 정수를 반환합니다.
fma a * b + c의 이중 정밀도 융합 곱셈 추가를 반환합니다. 5
fmod x/y의 부동 소수점 나머지를 반환합니다.
frac x의 소수 파트를 반환합니다.
frexp x의 가수와 지수를 반환합니다.
fwidth abs(ddx(x)) + abs(ddy(x))를 반환합니다.
GetRenderTargetSampleCount 렌더링 대상 샘플의 수를 반환합니다. 4
GetRenderTargetSamplePosition 지정된 샘플 인덱스에 대한 샘플 위치(x,y)를 반환합니다. 4
GroupMemoryBarrier 모든 그룹 공유 액세스가 완료될 때까지 그룹의 모든 스레드 실행을 차단합니다. 5
GroupMemoryBarrierWithGroupSync 모든 그룹 공유 액세스가 완료되고 그룹의 모든 스레드가 이 호출에 도달할 때까지 그룹의 모든 스레드 실행을 차단합니다. 5
InterlockedAdd dest 리소스 변수에 대한 값의 보장된 원자성 추가를 수행합니다. 5
InterlockedAnd 보장된 원자성 and를 수행합니다. 5
InterlockedCompareExchange 입력을 비교 값과 원자성으로 비교하고 결과를 교환합니다. 5
InterlockedCompareStore 입력을 비교 값과 원자성으로 비교합니다. 5
InterlockedExchange dest에 값을 할당하고 원래 값을 반환합니다. 5
InterlockedMax 보장된 원자성 최댓값을 수행합니다. 5
InterlockedMin 보장된 원자성 최솟값을 수행합니다. 5
InterlockedOr 보장된 원자성 or를 수행합니다. 5
InterlockedXor 보장된 원자 xor를 수행합니다. 5
isfinite x가 유한한 경우 true를 반환하고 그렇지 않은 경우 false를 반환합니다.
isinf x가 +INF 또는 -INF이면 true를 반환하고 그렇지 않으면 false를 반환합니다.
isnan x가 NAN 또는 QNAN이면 true를 반환하고 그렇지 않으면 false를 반환합니다.
ldexp x * 2exp를 반환합니다.
length 벡터 v의 길이를 반환합니다.
lerp x + s(y - x)를 반환합니다.
lit 조명 벡터(ambient, diffuse, specular, 1)를 반환합니다.
log x의 밑이 e인 로그를 반환합니다.
log10 x의 밑이 10인 로그를 반환합니다.
log2 x의 밑이 2인 로그를 반환합니다.
mad 세 값에 대해 산술 곱하기/더하기 연산을 수행합니다. 5
max x와 y 중 더 큰 것을 선택합니다.
x와 y 중 더 작은 것을 선택합니다.
modf 값 x를 소수 부분과 정수 부분으로 나눕니다.
msad4 4바이트 기준 값과 8바이트 원본 값을 비교하여 4개의 합계 벡터를 누적합니다. 5
mul x와 y를 사용하여 행렬 곱셈을 수행합니다. 1
noise Perlin-noise 알고리즘을 사용하여 임의의 값을 생성합니다.
normalize 정규화된 벡터를 반환합니다.
pow xy를 반환합니다.
printf 사용자 지정 셰이더 메시지를 정보 큐에 제출합니다. 4
Process2DQuadTessFactorsAvg 쿼드 패치에 대해 수정된 테셀레이션 계수를 생성합니다. 5
Process2DQuadTessFactorsMax 쿼드 패치에 대해 수정된 테셀레이션 계수를 생성합니다. 5
Process2DQuadTessFactorsMin 쿼드 패치에 대해 수정된 테셀레이션 계수를 생성합니다. 5
ProcessIsolineTessFactors 등치선에 대한 반올림된 테셀레이션 계수를 생성합니다. 5
ProcessQuadTessFactorsAvg 쿼드 패치에 대해 수정된 테셀레이션 계수를 생성합니다. 5
ProcessQuadTessFactorsMax 쿼드 패치에 대해 수정된 테셀레이션 계수를 생성합니다. 5
ProcessQuadTessFactorsMin 쿼드 패치에 대해 수정된 테셀레이션 계수를 생성합니다. 5
ProcessTriTessFactorsAvg 트라이 패치에 대해 수정된 테셀레이션 계수를 생성합니다. 5
ProcessTriTessFactorsMax 트라이 패치에 대해 수정된 테셀레이션 계수를 생성합니다. 5
ProcessTriTessFactorsMin 트라이 패치에 대해 수정된 테셀레이션 계수를 생성합니다. 5
radians x를 각도에서 라디안으로 변환합니다. 1
rcp 빠르고 대략적인 성분별 역수를 계산합니다. 5
리플렉션 반사 벡터를 반환합니다. 1
refract 굴절 벡터를 반환합니다.
reversebits 성분별로 비트의 순서를 반대로 바꿉니다. 5
round x를 가장 가까운 정수로 반올림합니다.
rsqrt 1 / sqrt(x)를 반환합니다.
saturate x를 범위 [0, 1]로 클램프합니다. 1
sign x의 부호를 계산합니다.
sin x의 사인을 반환합니다.
sincos x의 사인과 코사인을 반환합니다.
sinh x의 쌍곡 사인을 반환합니다.
smoothstep 0과 1 사이의 매끄러운 Hermite 보간을 반환합니다.
sqrt 제곱근(성분당)
step (x >= a) ?를 반환합니다. 1: 0
tan x의 탄젠트를 반환합니다.
tanh x의 쌍곡 탄젠트를 반환합니다.
tex1D(s, t) 1D 텍스처 조회입니다. 1
tex1D(s, t, ddx, ddy) 1D 텍스처 조회입니다.
tex1Dbias 바이어스를 사용한 1D 텍스처 조회입니다.
tex1Dgrad 그라데이션을 사용한 1D 텍스처 조회입니다.
tex1Dlod LOD를 사용한 1D 텍스처 조회입니다.
tex1Dproj 프로젝티브 나누기를 사용한 1D 텍스처 조회입니다.
tex2D(s, t) 2D 텍스처 조회입니다.
tex2D(s, t, ddx, ddy) 2D 텍스처 조회입니다.
tex2Dbias 바이어스를 사용한 2D 텍스처 조회입니다.
tex2Dgrad 그라데이션을 사용한 2D 텍스처 조회입니다.
tex2Dlod LOD로 2D 텍스처 조회입니다. 3
tex2Dproj 프로젝티브 나누기를 사용한 2D 텍스처 조회입니다.
tex3D(s, t) 3D 텍스처 조회입니다.
tex3D(s, t, ddx, ddy) 3D 텍스처 조회입니다.
tex3Dbias 바이어스를 사용한 3D 텍스처 조회입니다.
tex3Dgrad 그라데이션을 사용한 3D 텍스처 조회입니다.
tex3Dlod LOD로 3D 텍스처 조회입니다.
tex3Dproj 프로젝티브 나누기를 사용한 3D 텍스처 조회입니다.
texCUBE(s, t) 큐브 텍스처 조회입니다.
texCUBE(s, t, ddx, ddy) 큐브 텍스처 조회입니다.
texCUBEbias 바이어스를 사용한 큐브 텍스처 조회입니다.
texCUBEgrad 그라데이션을 사용한 큐브 텍스처 조회입니다.
texCUBElod LOD를 사용한 큐브 텍스처 조회입니다.
texCUBEproj 프로젝티브 나누기를 사용한 사용한 큐브 텍스처 조회입니다.
transpose 행렬 m의 전치를 반환합니다. 1
trunc 부동 소수점 값을 정수 값으로 자릅니다. 1

 

¹ 제한 사항은 참조 페이지를 참조하세요.

성분 및 템플릿 형식

HLSL 내장 함수 선언은 입력 매개 변수 인수 및 반환 값에 대한 성분 형식 및 템플릿 형식을 사용합니다. 사용 가능한 형식은 다음 표에 나열되어 있습니다.

다음 템플릿 형식 설명 다음 데이터 형식 지원
행렬 선언에 따라 최대 16개의 성분 기본 HLSL 형식
object 샘플러 개체 sampler, sampler1D, sampler2D, sampler3D, samplerCUBE
스칼라(scalar) 1 성분 기본 HLSL 형식
벡터 최소 1개의 성분, 최대 4개의 성분(포함) 기본 HLSL 형식

 

추가 정보

HLSL에 대한 참조