다음을 통해 공유


texm3x2tex - ps

3x2 행렬 곱셈의 마지막 행을 수행하고 그 결과를 사용하여 텍스처 조회를 수행합니다. texm3x2tex는 texm3x2pad - ps 명령과 함께 사용해야 합니다.

Syntax

texm3x2tex dst, src

 

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

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

설명

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

 

이 명령은 3x2 행렬 곱 연산을 나타내는 두 명령 중 하나로 사용됩니다. 이 명령은 texm3x2pad - ps 명령과 함께 사용해야 합니다.

이 두 명령을 사용할 때 텍스처 레지스터는 다음 시퀀스를 사용해야 합니다.

 
tex t(n)                      // Define tn as a standard 3-vector (tn must 
                              // be defined in some way before it is used)
texm3x2pad  t(m),   t(n)      // where m > n
                              // Perform first row of matrix multiply
texm3x2tex  t(m+1), t(n)      // Perform second row of matrix multiply 
                              // to get (u,v) to sample texture 
                              // associated with stage m+1

3x2 곱셈이 수행되는 방법에 대한 자세한 내용은 다음과 같습니다.

texm3x2pad 명령은 u'를 찾기 위해 곱셈의 첫 번째 행을 수행합니다.

u' = t(n)RGB * TextureCoordinates(stage m)UVW

texm3x2tex 명령은 곱셈의 두 번째 행을 수행하여 v'를 찾습니다.

v' = t(n)RGB * TextureCoordinates(stage m+1)UVW

texm3x2tex 명령은 (u',v')를 사용하여 stage(m+1)에서 텍스처를 샘플링하고 결과를 t(m+1)에 저장합니다.

t(m+1)RGB = (u', v')를 좌표로 사용하는 TextureSample(stage m+1)RGB

예제

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

ps_1_1
tex t0                // Bind texture in stage 0 to register t0
texm3x2pad  t1,  t0   // First row of matrix multiply
texm3x2tex  t2,  t0   // Second row of matrix multiply to get (u,v)
                      // with which to sample texture in stage 2
mov r0, t2            // Output result

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

  • 0단계는(x,y,z) 교란 데이터가 있는 맵을 사용합니다.
  • 1단계는 텍스처 좌표를 보유합니다. 텍스처 단계에서는 텍스처가 필요하지 않습니다.
  • 2단계는 텍스처 좌표와 해당 텍스처 단계에서 설정된 2D 텍스처를 모두 보유합니다.

픽셀 셰이더 명령