DirectX Graphics 레퍼런스 셰이더 레퍼런스 픽셀 셰이더 2_0 확장 명령 - ps_2_x   [목차열람] [주소복사] [슬롯비우기]
명령 - ps_2_x
 
Microsoft DirectX 9.0

명령 - ps_2_x


여기에서는, 픽셀 셰이더 버전 2_x 명령의 레퍼런스 정보를 기술한다.

다음 표에 나타나듯이 픽셀 셰이더 명령에는 몇개의 종류가 있다. 우측의 열의 의미는 다음과 같다.

명령 세트

이름설명명령 슬롯셋업산술매크로 연산자텍스처flow control신규
abs 절대치1x
add 2 개의 벡터의 덧셈1x
break loop ...endloop 또는 rep ...endrep 블록을 종료하는1xx
break_comp 비교의 조건에 근거해,loop...endloop 또는 rep...endrep 블록을 종료하는3xx
break pred 프레디케이션에 근거해,loop...endloop 또는 rep...endrep 블록을 종료하는3xx
call 서브 루틴을 호출하는2xx
callnz 불형 레지스터가 제로가 아닌 경우에 서브 루틴을 호출하는3xx
callnz pred 프레디케이션이 제로가 아닌 경우에 서브 루틴을 호출하는3xx
cmp 입력을 0 과 비교하는1x
crs 외 적2x
dcl 정점 요소의 타입을 입력 정점 레지스터에 맵핑 하는0x
dcl_textureType 샘플러의 텍스처의 넓이를 선언하는0x
def 정수의 정의0x
dp2add 2D 의 내적 및 덧셈1x
dp3 3D 의 내적1x
dp4 4D 의 내적1x
dsx x 방향의 변화 비율2xx
dsy y 방향의 변화 비율2xx
else else 블록의 시작1xx
endif if ...else 블록의 종료1xx
endrep repeat 블록의 종료2xx
exp 완전 정밀도의 2x1xx
frc 소수부1x
if if 블록의 시작3xx
if comp 비교에 근거해,if 블록을 시작 하는3xx
if pred 프레디케이션에 근거해,if 블록을 시작 하는3xx
label 라벨을 붙이는0xx
log 완전 정밀도의 log2(x)1x
lrp 선형 보간2x
m3x2 3x2 행렬 곱셈2x
m3x3 3x3 행렬 곱셈3x
m3x4 3x4 행렬 곱셈4x
m4x3 4x3 행렬 곱셈3x
m4x4 4x4 행렬 곱셈4x
mad 적화1x
max 최대치1x
min 최소 값1x
mov 이동1x
mul 곱셈1x
nop 무동작 명령 (어떤 연산도 실행하지 않는다)1x
nrm 정규화3x
pow 2x3x
ps 버전0x
rcp 역수1x
rep 반복하는3xx
ret 서브 루틴의 종료1xx
rsq 역수 제곱근1x
setp 프레디케이션레지스터를 설정하는1xx
sincos 정현과 코사인8x
sub 뺄셈1x
texkill 픽셀 렌더링을 종료시키는2(tex)x
texld 텍스처의 샘플링1 + 3CUBEx
texldb w 성분의 상세 레벨 (LOD)의 바이어스를 사용한 텍스처 샘플링6(tex)x
texldd 사용자 지정의 그라데이션을 사용한 텍스처 샘플링3xx
texldp w 성분에 의한 투영 나눗셈을 사용한 텍스처 샘플링3 + 1CUBEx

여기서

명령 카운트와 네스트의 깊이

셰이더에는, 최대 명령 카운트와 정적 및 동적인 flow control 명령의 네스트의 깊이에 관한 제한이 있다.

전명령 카운트

총명령 슬롯수 :최대 512 개

실행되는 명령의 최대수는,D3DCAPS9 의 MaxPShaderInstructionsExecuted 능력으로 지정되고 있는 수이다.

이 수에는, #define D3DINFINITEINSTRUCTIONS 를 설정할 수 있다. 이것은, 실행되는 명령의 실제의 수가 무제한한 것을 나타낸다.

실행되는 명령의 총수는, 장치 드라이버 D3DRS_MAXPIXELSHADERINST 에 제한되지 않으면 안 된다. 이 렌더링 스테이트로 유효한 값은, 2 의 거듭제곱의 수이다. 그 이외의 정수를 설정 하면, 다음의 가장 가까운 2 의 거듭제곱의 수로 보여진다. 이 렌더링 스테이트에는 디폴트로, D3DINFINITEINSTRUCTIONS 가 설정된다.

동적 flow control의 네스트의 깊이

D3DCAPS9.D3DPSHADERCAPS2_0.DynamicFlowControlDepth 는, 동적 flow control 명령 if ,break , 및 break_comp 의 네스트의 깊이를 나타낸다. 이 값은,if_comp 블록의 네스트의 깊이와 동일하다. 이 능력의 값의 범위는 0 ~ 24 이다. 이 능력이 0 의 경우, 장치는 동적 flow control 명령을 지원 하지 않는다.

정적 flow control의 네스트의 깊이

D3DCAPS9.D3DPSHADERCAPS2_0.StaticFlowControlDepth 는, 정적 flow control 명령loop /repcall /callnz 의 네스트의 깊이를 나타낸다. 이 능력의 값의 범위는, 1 ~ 4 이다. loop/rep 는 같은 네스트의 깊이에 대해서 카운트 해,call/callnz 는 같은 네스트의 깊이에 대해서 카운트 한다. 이 능력이 0 의 경우, 장치는 정적 flow control 명령을 지원 하지 않는다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP