픽셀 셰이더 원본 레지스터 한정자

명령이 실행되기 전에 레지스터에서 읽은 값을 변경하려면 원본 레지스터 한정자를 사용합니다. 원본 레지스터의 콘텐츠는 변경되지 않습니다. 한정자는 명령을 준비하기 위해 레지스터 데이터의 범위를 조정하는 데 유용합니다. 선택기라고 하는 한정자 집합은 단일 채널(r,g,b,a)에서 다른 채널로 데이터를 복사하거나 복제합니다.

ps_1_1 - ps_1_4

이 표는 각 한정자를 지원하는 버전을 식별합니다.

원본 레지스터 한정자 Syntax 버전 1_1 버전 1_2 버전 1_3 버전 1_4
bias register_bias X X X X
invert 1 - register X X X X
negate - register X X X X
2배로 스케일 register_x2 X
부호 있는 스케일링 register_bx2 X X X X
texld 및 texcrd 한정자 register_d* X X X X
원본 레지스터 Swizzling register.xyzw X X X X

 

원본 레지스터 한정자는 산술 명령에서만 사용할 수 있습니다. 텍스처 주소 명령에는 사용할 수 없습니다. 이에 대한 예외는 2배로 스케일 한정자입니다. 버전 1_1의 경우 모든 texm* 명령의 원본 인수에서 부호 있는 스케일링을 사용할 수 있습니다. 버전 1_2 또는 1_3의 경우 모든 텍스처 주소 명령의 원본 인수에서 부호 있는 스케일링을 사용할 수 있습니다.

일부 한정자 특정 제한 사항:

  • Negate는 바이어스, 부호 있는 스케일링 또는 scalex2 한정자와 결합할 수 있습니다. 결합되면 negate가 마지막으로 실행됩니다.
  • Invert는 다른 한정자와 결합할 수 없습니다.
  • Invert, negate, bias, 부호 있는 스케일링 및 2배로 스케일은 모든 선택기와 결합될 수 있습니다.
  • 원본 레지스터 한정자는 정의되지 않은 결과를 초래하므로 상수 레지스터에서 사용하면 안 됩니다. 버전 1_4의 경우 상수에 대한 한정자가 허용되지 않으며 유효성 검사에 실패합니다.

ps_2_0 이상

버전 ps_2_0 이상에서는 한정자의 수가 단순화되었습니다.

Negate

원본 레지스터의 콘텐츠를 negate합니다.

성분 한정자 설명
- r 원본 부정

 

negate 한정자는 m3x2 - ps, m3x3 - ps, m3x4 - ps, m4x3 - psm4x4 - ps 명령의 두 번째 원본 레지스터에서 사용할 수 없습니다.

픽셀 셰이더 버전 2_0 2_x 2_sw 3_0 3_sw
- x x x x x

 

절대값

레지스터의 절대값을 가져옵니다.

픽셀 셰이더 버전 2_0 2_x 2_sw 3_0 3_sw
abs x x

 

버전 3 셰이더가 하나 이상의 상수 float 레지스터(c#)에서 읽는 경우 다음 중 하나가 해당되어야 합니다.

  • 모든 상수 부동 소수점 레지스터는 abs 한정자를 사용해야 합니다.
  • 상수 부동 소수점 레지스터는 abs 한정자를 사용할 수 없습니다.

픽셀 셰이더 레지스터 한정자