texldp - ps
예상 텍스처 로드 명령입니다. 이 명령은 샘플링 직전에 입력 텍스처 좌표를 네 번째 요소(.a 또는 .w)로 나눕니다.
Syntax
texldp dst, src0, src1 |
---|
라는 설치 관리자 실행 파일에 포함됩니다. 여기서
- dst는 대상 레지스터입니다.
- src0은 텍스처 샘플의 텍스처 좌표를 제공하는 원본 레지스터입니다. 텍스처 좌표 레지스터를 참조하세요.
- src1은 샘플러(Direct3D 9 asm-ps)(s#)를 식별합니다. 여기서 #은 샘플링할 텍스처 샘플러 번호를 지정합니다. 샘플러는 D3DSAMPLESTATETYPE에 의해 정의된 텍스처 및 샘플러 상태와 연결되어 있습니다.
texldp 사용 시 제한 사항은 texld를 참조하세요.
설명
texldp는 샘플을 수행하기 전에 src0에서 읽은 좌표에 프로젝션을 수행합니다. 각 텍스처 좌표를 src0.w로 나눈 다음 텍스처를 샘플링합니다. texldp가 완료되면 src0의 콘텐츠는 영향을 받지 않습니다(dst가 동일한 레지스터가 아닌 경우). texldp를 사용하는 것의 대안은 셰이더에서 프로젝션 분할을 수동으로 수행하는 것입니다. 그러나 셰이더 코드에서 나누기를 수행하는 것은 일반적으로 texldp 명령으로 수행할 때보다 느리므로 가능하면 이러한 추가 수학을 방지합니다.
텍스처 샘플을 수행하기 위해 src0에 필요한 좌표의 수는 src1이 선언된 방식과 .w 성분에 따라 다릅니다. 샘플러 형식은 dcl_samplerType (sm2, sm3 - ps asm)으로 선언됩니다. src1이 2D 샘플러로 선언된 경우 src0은 .xyw 좌표를 포함해야 합니다. src1이 정육면체 샘플러 또는 볼륨 샘플러로 선언된 경우 src0은 .xyzw 좌표를 포함해야 합니다. .xyzw 좌표로 2D 텍스처 샘플링이 허용됩니다(.z 좌표는 무시됨).
원본 텍스처에 4개 미만의 성분이 포함된 경우 기본값은 누락된 성분에 배치됩니다. 기본값은 다음 표와 같이 텍스처 형식에 따라 다릅니다.
텍스처 형식 | 누락된 성분의 기본값 |
---|---|
D3DFMT_R5G6B5, D3DFMT_R8G8B8, D3DFMT_L8, D3DFMT_L16, D3DFMT_R3G3B2, D3DFMT_CxV8U8, D3DFMT_L6V5U5 | A = 1.0 |
D3DFMT_V8U8, D3DFMT_V16U16, D3DFMT_G16R16, D3DFMT_G16R16F, D3DFMT_G32R32F | B = A = 1.0 |
D3DFMT_A8 | R = G = B = 0.0 |
D3DFMT_R16F, D3DFMT_R32F | G = B = A = 1.0 |
모든 깊이/스텐실 형식 | R = B = 0.0, A = 1.0 |
이 명령은 다음 버전에서 지원됩니다.
픽셀 셰이더 버전 | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
texldp | x | x | x | x | x |
ps_2_0 및 ps_2_x
dst는 임시 레지스터(r#)여야 하며 .xyzw 마스크(기본 마스크)만 허용됩니다.
src0은 한정자나 스위즐이 없는 텍스처 좌표 레지스터(t#) 또는 임시 레지스터(r#)여야 합니다.
src1은 한정자나 swizzle이 없는 샘플러(Direct3D 9 asm-ps)(s#)여야 합니다.
D3DD3DPSHADERCAPS2_0_NODEPENDENTREADLIMIT 한보 비트가 설정되지 않은 경우(D3DPSHADERCAPS2_0에서) 지정된 텍스처 명령(texld, texldp, texldb - ps, texldd)은 기껏해야 3차에 종속될 수 있습니다. 1차 종속 텍스처 명령은 다음 중 하나에 해당하는 텍스처 명령입니다.
- src0은 임시 레지스터(r#)입니다.
- dst는 이전에 작성되었으며 이제 다시 작성됩니다.
2차 종속 텍스처 명령은 텍스처 명령을 실행하기 전에 내용이 1차 종속 텍스처 명령의 결과에 따라 간접적으로 종속된 임시 레지스터(r#)를 읽거나 쓰는 텍스처 명령으로 정의됩니다. (n)차 종속 텍스처 명령은 (n - 1)차 텍스처 명령에서 파생됩니다.
ps_3_0
ps_3_0의 경우 src1은 한정자가 없는 샘플러(Direct3D 9 asm-ps)(s#)여야 합니다. swizzle은 src1에서 허용되며 적용되면 텍스처 조회 결과가 dst에 기록되기 전에 사전 swizzle됩니다.
관련 항목