texld - ps_2_0 이상

제공된 텍스처 좌표를 사용하여 특정 샘플러에서 텍스처를 샘플링합니다. 이 명령은 픽셀 셰이더 버전 1_4에서 사용되는 texld - ps_1_4 명령과 다릅니다.

Syntax

texld dst, src0, src1

 

여기서

  • dst는 대상 레지스터입니다.
  • src0은 텍스처 샘플의 텍스처 좌표를 제공하는 원본 레지스터입니다.
  • src1은 샘플러(Direct3D 9 asm-ps)(s#)를 식별합니다. 여기서 #은 샘플링할 텍스처 샘플러 번호를 지정합니다. 샘플러는 D3DSAMPLESTATETYPE에 의해 정의된 텍스처 및 샘플러 상태와 연결되어 있습니다.

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

src1은 한정자가 없는 샘플러(Direct3D 9 asm-ps)(s#)여야 합니다. swizzle은 src0 또는 src1에서 허용됩니다. swizzle은 텍스처 조회 전에 텍스처 좌표에 적용됩니다.

설명

이 명령은 다음 버전에서 지원됩니다.

픽셀 셰이더 버전 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
texld x x x x x

 

텍스처 샘플을 수행하기 위해 src0에 필요한 좌표의 수는 src1이 선언된 방식과 .w 성분에 따라 다릅니다. 샘플러 형식은 dcl_samplerType(sm2, sm3 - ps asm)으로 선언됩니다. src1이 2D 샘플러로 선언된 경우 src0은 .xy 좌표를 포함해야 합니다. src1이 큐브 샘플러 또는 볼륨 샘플러로 선언된 경우 src0은 .xyz 좌표를 포함해야 합니다. 여분의 텍스처 좌표 성분이 무시되기 때문에 텍스처 좌표에 있는 것보다 더 적은 차원으로 텍스처를 샘플링하는 것이 허용됩니다.

원본 텍스처에 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

 

픽셀 셰이더 명령