다음을 통해 공유


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

명령이 실행되기 전에 레지스터에서 읽은 값을 변경하려면 원본 레지스터 한정자를 사용합니다. 원본 레지스터의 콘텐츠는 변경되지 않습니다. 한정자는 명령을 준비하기 위해 레지스터 데이터의 범위를 조정하는 데 유용합니다. 선택기라고 하는 한정자 집합은 단일 채널(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 한정자를 사용할 수 없습니다.

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