ps_2_0 이상에 대한 한정자

명령 한정자는 명령이 대상 레지스터에 기록되기 전에 명령의 결과에 영향을 미칩니다.

이 섹션에는 픽셀 셰이더 버전 2_0 이상에서 구현된 명령 한정자에 대한 참조 정보가 포함되어 있습니다.

Name 구문 2_0 2_x 2_sw 3_0 3_sw
Centroid _centroid x x x x x
Partial_Precision _pp x x x x x
Saturate _sat x x x x x

 

중점

중심 한정자는 다중 샘플 픽셀 중심이 기본 형식에 포함되지 않을 때 기본 형식 범위 내에서 특성 보간을 클램프하는 선택적 한정자입니다. 이는 중심 샘플링에서 볼 수 있습니다.

다음과 같이 어셈블리 명령에 중심 한정자를 적용할 수 있습니다.

dcl_texcoord0_centroid v0

다음과 같이 의미 체계에 중심 한정자를 적용할 수도 있습니다.

float4 TexturePointCentroidPS( float4 TexCoord : TEXCOORD0_centroid ) : COLOR0
{
    return tex2D( PointSampler, TexCoord );
}

또한 색상 의미 체계로 선언된 모든 입력 색상 레지스터(v#)에는 자동으로 중심이 적용됩니다. 중심 샘플링된 특성에서 계산된 그라데이션은 정확하지 않을 수 있습니다.

부분 정밀도

부분 정밀도 명령 한정자(_pp)는 기본 구현에서 지원하는 경우 부분 정밀도가 허용되는 영역을 나타냅니다. 구현은 항상 한정자를 무시하고 영향을 받는 작업을 전체 정밀도로 수행할 수 있습니다.

_pp 한정자는 두 가지 컨텍스트에서 발생할 수 있습니다.

  • 텍스처 좌표 선언에서 텍스처 좌표를 부분 정밀도 형식으로 픽셀 셰이더에 전달할 수 있습니다. 예를 들어, 텍스처 좌표를 사용하여 색상 데이터를 픽셀 셰이더에 전달할 수 있습니다. 일부 구현에서는 완전 정밀도보다 부분 정밀도가 더 빠를 수 있습니다. 이 한정자가 없으면 텍스처 좌표를 전체 정밀도로 전달해야 합니다.
  • 텍스처 로드 명령을 포함한 모든 명령에서. 이는 구현이 부분 정밀도로 명령을 실행하고 부분 정밀도 결과를 저장할 수 있음을 나타냅니다. 명시적 한정자가 없으면 명령은 전체 정밀도(입력 정밀도에 관계없이)로 수행되어야 합니다.

예제:

dcl_texcoord0_pp t1
cmp_pp r0, r1, r2, r3

Saturate

포화 명령 한정자(sat)는 대상 레지스터에 쓰기 전에 명령 결과를 [0, 1] 범위로 포화(또는 클램프)합니다.

_sat 명령 한정자는 frc - ps, sincos - ps 및 모든 tex* 명령을 제외한 모든 명령과 함께 사용할 수 있습니다.

ps_2_0, ps_2_x 및 ps_2_sw의 경우 _sat 명령 한정자는 출력 레지스터(출력 색상 레지스터 또는 출력 깊이 레지스터)에 쓰는 명령과 함께 사용할 수 없습니다. 이 제한은 ps_3_0 이상에는 적용되지 않습니다.

예제:

dp3_sat r0, v0, c1

픽셀 셰이더 명령