texm3x3tex - ps
3x3 행렬 곱셈을 수행하고 그 결과를 사용하여 텍스처 조회를 수행합니다. texm3x3tex는 두 개의 texm3x3pad - ps 명령과 함께 사용해야 합니다.
Syntax
texm3x3tex dst, src |
---|
라는 설치 관리자 실행 파일에 포함됩니다. 여기서
- dst는 대상 레지스터입니다.
- src는 원본 레지스터입니다.
설명
픽셀 셰이더 버전 | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
texm3x3tex | x | x | x |
이 명령은 텍스처 조회가 뒤따르는 3x3 행렬 곱 연산을 나타내는 세 개의 명령 중 마지막으로 사용됩니다. 3x3 행렬은 세 번째 텍스처 단계와 이전 두 텍스처 단계의 텍스처 좌표로 구성됩니다. 결과 3-성분 벡터(u,v,w)는 3단계에서 텍스처를 샘플링하는 데 사용됩니다. 이전 두 텍스처 단계에 할당된 모든 텍스처는 무시됩니다. 3x3 행렬 곱은 일반적으로 렌더링되는 표면의 올바른 탄젠트 공간에 법선 벡터의 방향을 지정하는 데 유용합니다.
이 명령은 texm3x3pad 명령과 함께 사용해야 합니다. 텍스처 레지스터는 다음 시퀀스를 사용해야 합니다.
tex t(n) // Define tn as a standard 3-vector (tn must
// be defined in some way before it is used)
texm3x3pad t(m), t(n) // where m > n
// Perform first row of matrix multiply
texm3x3pad t(m+1), t(n) // Perform second row of matrix multiply
texm3x3tex t(m+2), t(n) // Perform third row of matrix multiply to get a
// 3-vector with which to sample texture
// associated with texture stage m+2
3x3 곱셈이 수행되는 방법에 대한 자세한 내용은 다음과 같습니다.
첫 번째 texm3x3pad 명령은 u'를 찾기 위해 곱셈의 첫 번째 행을 수행합니다.
u' = TextureCoordinates(stage m)UVW * t(n)RGB
두 번째 texm3x3pad 명령은 곱셈의 두 번째 행을 수행하여 v'를 찾습니다.
v' = TextureCoordinates(stage m+1)UVW * t(n)RGB
texm3x3spec 명령은 곱하기의 세 번째 행을 수행하여 w'를 찾습니다.
w' = TextureCoordinates(stage m+2)UVW * t(n)RGB
마지막으로 texm3x3tex 명령은 (u',v',w')를 사용하여 t(m+2)를 샘플링하고 결과를 t(m+ 2)에 저장합니다.
t(m+2)RGBA = (u' , v' , w')를 좌표로 사용하는 TextureSample(stage m+2)RGBA
예제
다음은 식별된 텍스처 맵과 식별된 텍스처 단계가 있는 예 셰이더입니다.
ps_1_1
tex t0 // Bind texture in stage 0 to register t0
texm3x3pad t1, t0 // First row of matrix multiply
texm3x3pad t2, t0 // Second row of matrix multiply
texm3x3tex t3, t0 // Third row of matrix multiply to get a
// 3-vector with which to sample texture at
mov r0, t3 // stage 3 output result
이 예에는 다음과 같은 텍스처 단계 설정이 필요합니다.
- 0단계에는 일반 데이터가 있는 텍스처 맵이 할당됩니다. 이는 종종 범프 맵이라고 합니다. 데이터는 각 텍셀에 대한(XYZ) 법선입니다. 텍스처 좌표 집합 0은 이 법선 맵을 샘플링하는 방법을 정의합니다.
- 텍스처 좌표 집합 1은 3x3 행렬의 행 1에 할당됩니다. 1단계에 할당된 모든 텍스처는 무시됩니다.
- 텍스처 좌표 집합 2는 3x3 행렬의 행 2에 할당됩니다. 2단계에 할당된 모든 텍스처는 무시됩니다.
- 텍스처 좌표 집합 3은 3x3 행렬의 행 3에 할당됩니다. 변환된 3D 벡터로 조회하려면 볼륨 또는 큐브 텍스처를 3단계로 설정해야 합니다.
관련 항목