다음을 통해 공유


texbem - ps

가짜 범프 환경 맵 변환을 적용합니다. 이는 주소 교란 데이터(du,dv) 및 2D 범프 환경 행렬을 사용하여 대상 레지스터의 텍스처 주소 데이터를 수정하여 수행됩니다.

Syntax

texbem dst, src

 

라는 설치 관리자 실행 파일에 포함됩니다. 여기서

  • dst는 대상 레지스터입니다.
  • src는 원본 레지스터입니다.

설명

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

 

src 레지스터의 빨간색 및 녹색 색상 데이터는 교란 데이터(du,dv)로 해석됩니다.

이 명령은 2D 범프 환경 매핑 행렬을 사용하여 원본 레지스터의 빨간색 및 녹색 성분을 변환합니다. 결과는 대상 레지스터 번호에 해당하는 텍스처 좌표 집합에 추가되며 현재 텍스처 단계를 샘플링하는 데 사용됩니다.

이 작업은 항상 du 및 dv를 부호 있는 수량으로 해석합니다. 버전 1_0 및 1_1의 경우 원본 레지스터 부호 있는 스케일링 입력 한정자(_bx2)가 입력 인수에서 허용되지 않습니다.

이 명령은 입력 텍스처에 부호 있는 형식 데이터가 포함된 경우 정의된 결과를 생성합니다. 혼합 형식 데이터는 처음 두 채널에 서명된 데이터가 포함된 경우에만 작동합니다. 표면 형식에 대한 자세한 내용은 D3DFORMAT을 참조하세요.

이는 가짜 픽셀별 환경 매핑 및 확산 조명(범프 매핑)을 포함하여 주소 교란을 기반으로 하는 다양한 기술에 사용할 수 있습니다.

이 명령을 사용하는 경우 텍스처 레지스터는 다음 시퀀스를 따라야 합니다.

// The texture assigned to stage t(n) contains the (du,dv) data
// The texture assigned to stage t(m) is sampled
tex     t(n)                    
texbem  t(m),  t(n)      where m > n

명령 내에서 수행된 계산은 다음과 같습니다.

// 1. New values for texture addresses (u',v') are calculated
// 2. Sample the texture using (u',v')

u' = TextureCoordinates(stage m)u + D3DTSS_BUMPENVMAT00(stage m)*t(n)R + D3DTSS_BUMPENVMAT10(stage m)*t(n)G v' = TextureCoordinates(stage m)v + D3DTSS_BUMPENVMAT01(stage m)*t(n)R + D3DTSS_BUMPENVMAT11(stage m)*t(n)G t(m)RGBA = TextureSample(stage m)

// (u',v')를 좌표로 사용

texbem - ps 또는 texbeml - ps 명령으로 읽은 레지스터 데이터는 다른 texbem - ps 또는 texbeml - ps를 제외하고 나중에 읽을 수 없습니다.

// This example demonstrates the validation error caused by t0 being reread:
ps_1_1
tex t0
texbem t1, t0
add r0, t1, t0

(Instruction Error) (Statement 4) Register data that has been read by 
texbem or texbeml instruction cannot be read by other instructions

예제

다음은 식별된 텍스처 맵과 식별된 텍스처 단계가 있는 예제 셰이더입니다.

ps_1_1
tex t0              ; Define t0 to get a 2-tuple DuDv
texbem t1, t0       ; Compute (u',v')
                    ; Sample t1 using (u',v')
mov r0, t1          ; Output result

texbem에서는 다음 텍스처 단계에서 다음 텍스처가 필요합니다.

  • 0단계에는 (du, dv) 교란 데이터가 있는 범프 맵이 할당됩니다.
  • 1단계에서는 색 데이터가 있는 텍스처 맵을 사용합니다.
  • 이 명령은 샘플링되는 텍스처 단계에서 행렬 데이터를 설정합니다.
  • 이는 교란 데이터와 행렬이 동일한 텍스처 단계를 차지하는 고정 함수 파이프라인의 기능과 다릅니다.

픽셀 셰이더 명령