texm3x2tex - ps
3x2 행렬 곱셈의 마지막 행을 수행하고 그 결과를 사용하여 텍스처 조회를 수행합니다. texm3x2tex는 texm3x2pad - ps 명령과 함께 사용해야 합니다.
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 텍스처를 모두 보유합니다.