texcrd-ps

원본 텍스처 좌표 반복기 레지스터의 텍스처 좌표 데이터를 대상 레지스터의 색상 데이터로 복사합니다.

Syntax

texcrd dst, src

 

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

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

설명

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

 

이 명령은 좌표 데이터를 색상 데이터(RGBA)로 해석합니다.

이 명령으로 텍스처가 샘플링되지 않습니다. 이 텍스처 단계에 설정된 텍스처 좌표만 관련이 있습니다.

texcrd를 사용할 때 원본 레지스터에서 대상 레지스터로 데이터를 복사하는 방법에 대한 다음 세부 정보를 염두에 두세요. 원본 텍스처 좌표 레지스터(t#)는 [-D3DCAPS9.MaxTextureRepeat, D3DCAPS9.MaxTextureRepeat] 범위의 데이터를 보유하는 반면 대상 레지스터(r#)는 (더 작을 가능성이 높은) 범위 [-D3DCAPS9.PixelShader1xMaxValue, D3DCAPS9.PixelShader1xMaxValue]에서만 데이터를 보유할 수 있습니다. 픽셀 셰이더 버전 1_4의 경우 D3DCAPS9.PixelShader1xMaxValue는 최소 8이어야 합니다. 대상 레지스터의 범위를 벗어난 원본 데이터를 클램핑하는 과정에서 texcrd 명령은 다른 하드웨어에서 다르게 동작할 가능성이 있습니다. 시장에 출시된 첫 번째 픽셀 셰이더 버전 1_4 하드웨어는 범위 밖의 값에 대해 특수 클램프를 수행합니다. 이 클램프는 대상 레지스터에 맞을 수 있는 숫자를 생성할 뿐만 아니라 이후 텍스처 샘플링에 데이터를 사용할 경우 범위를 벗어난 데이터( D3DTEXTUREADDRESS 참조)에 대한 텍스처 주소 지정 동작을 유지하도록 설계되었습니다. 그러나 다른 제조업체의 새 하드웨어는 이러한 동작을 나타내지 않을 수 있으며 대상 레지스터 범위에 맞게 데이터를 잘라낼 수 있습니다. 따라서 픽셀 셰이더 버전 1_4 texcrd를 사용할 때 가장 안전한 작업은 하드웨어 클램프 방식에 의존하지 않도록 이미 [-8,8] 범위 내에 있는 픽셀 셰이더에만 텍스처 좌표 데이터를 제공하는 것입니다.

texcoord_와 달리 texcrd는 0과 1 사이의 값을 제한하지 않습니다.

texcrd 사용 규칙:

  1. 동일한 .xyz 또는 .xyw 한정자는 texcrd 또는 texld 명령 내에서 개별 t(n) 레지스터의 모든 읽기에 적용되어야 합니다.
  2. texcrd의 네 번째 채널 결과는 모든 경우에 설정/정의되지 않습니다.
  3. 세 번째 채널은 xyw_dw 경우에 대해 설정/정의되지 않습니다.

예제

모든 유효한 원본 한정자/선택자 및 대상 쓰기 마스크 조합을 고려하여 texcrd에 허용되는 전체 구문 집합은 다음과 같습니다. .rgba 및 .xyzw 표기법은 서로 바꿔서 사용할 수 있습니다.

텍스처 좌표 반복기 레지스터 t(n)의 처음 세 채널을 r(m)에 복사합니다. r(m)의 네 번째 채널은 초기화되지 않습니다.

texcrd  r(m).rgb, t(n).xyz  

// Produces the same result as the previous instruction
texcrd  r(m).rgb, t(n)

t(n)의 첫 번째, 두 번째 및 네 번째 성분을 r(m)의 처음 세 채널에 넣습니다. r(m)의 네 번째 채널은 초기화되지 않습니다.

texcrd  r(m).rgb, t(n).xyw

다음은 _dw 한정자를 사용하는 투영 나누기 예입니다.

이 예는 x/w 및 y/w를 t(n)에서 r(m)의 처음 두 채널로 복사합니다. r(m)의 세 번째와 네 번째 채널은 초기화되지 않습니다. 이전에 r(m)의 세 번째 채널에 기록된 모든 데이터는 손실됩니다. 위상 마커로 인해 r(m)의 네 번째 채널에 있는 데이터가 손실됩니다. 버전 1_4의 경우 D3DTTFF_PROJECTED 플래그가 무시됩니다.

texcrd  r(m).rg,  t(n)_dw.xyw

픽셀 셰이더 명령