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