texldb - ps

편향된 텍스처 로드 명령입니다. 이 명령은 네 번째 요소(.a 또는 .w)를 사용하여 샘플링 직전에 텍스처 샘플링 수준의 세부 정보를 편향시킵니다.

Syntax

texldb dst, src0, src1

 

여기서

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

texldb 사용 시 제한 사항은 texld - ps_2_0 이상 명령을 참조하세요.

ps_2_0 및 ps_2_x

dst는 임시 레지스터(r#)여야 하며 .xyzw 마스크(기본 마스크)만 허용됩니다.

src0은 한정자나 스위즐이 없는 텍스처 좌표 레지스터(t#) 또는 임시 레지스터(r#)여야 합니다.

src1은 한정자나 스위즐이 없는 샘플러(Direct3D 9 asm-ps)(s#)여야 합니다.

D3DD3DPSHADERCAPS2_0_NODEPENDENTREADLIMIT 상한 비트가 설정되지 않은 경우(D3DPSHADERCAPS2_0에서) 지정된 텍스처 명령(texld, texldp, texldb, texldd)은 최대 3차에 종속될 수 있습니다. 1차 종속 텍스처 명령은 다음 중 하나에 해당하는 텍스처 명령입니다.

  • src0은 임시 레지스터(r#)입니다.
  • dst는 이전에 작성되었으며 이제 다시 작성됩니다.

2차 종속 텍스처 명령은 텍스처 명령을 실행하기 전에 내용이 1차 종속 텍스처 명령의 결과에 따라 간접적으로 종속된 임시 레지스터(r#)를 읽거나 쓰는 텍스처 명령으로 정의됩니다. (n)차 종속 텍스처 명령은 (n - 1)차 텍스처 명령에서 파생됩니다.

ps_3_0

src1은 한정자가 없는 샘플러(Direct3D 9 asm-ps)(s#)여야 합니다. 스위즐은 src1에서 허용되며, 적용되는 경우 텍스처 조회 결과가 dst에 기록되기 전에 사전 스위즐됩니다.

설명

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

 

texldb는 일반적으로 src0.w의 (부호 있는) 값에 의해 샘플 프로세스의 일부로 계산되는 밉맵 수준의 세부 정보를 편향시킵니다. 양수 바이어스 값을 사용하면 더 작은 밉맵이 선택되고 그 반대의 경우도 마찬가지입니다. ps_2_0 및 ps_2_x의 경우 바이어스 값은 [-3.0, +3.0] 범위 내에 있을 수 있습니다. ps_3_0의 경우 바이어스 값은 [-16.0, +15.0] 범위 내에 있을 수 있습니다. 이러한 범위를 벗어난 바이어스 값은 정의되지 않은 결과를 생성합니다. 샘플러 상태 D3DSAMP_MIPMAPLODBIAS가 여전히 적용되며 texldb 바이어스가 픽셀 단위로 추가됩니다. 편향된 세부 수준 계산 후에도 D3DSAMP_MAXMIPLEVEL이 계속 적용되며 텍스처 샘플이 발생합니다. texldb 이후 src0의 콘텐츠는 영향을 받지 않습니다(dst가 동일한 레지스터가 아닌 경우).

텍스처 샘플을 수행하기 위해 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

 

픽셀 셰이더 명령