다음을 통해 공유


대상 레지스터 마스킹

마스킹은 명령의 결과로 업데이트될 대상 레지스터의 성분을 지정합니다. 텍스처 레지스터에는 한 집합의 규칙이 있고 비텍스처 레지스터에는 또 다른 규칙 집합이 있습니다.

  • dx9_graphics_reference_asm_vs_registers_modifiers_masking - 이 섹션에는 대상 레지스터에 마스크를 적용하기 위한 규칙이 포함되어 있습니다.
  • Texture_Register_Masks - 텍스처 레지스터에는 몇 가지 고유한 규칙이 있습니다.

대상 레지스터 마스킹

다음 표에 표시된 것처럼 마스킹(여기서 r은 유효한 꼭짓점 셰이더 꼭짓점 셰이더 레지스터 중 하나임)은 벡터 데이터의 개별 성분에 적용될 수 있습니다.

성분 한정자 설명
r.{x}{y}{z}{w} 대상 마스크

 

  • 일반적으로 대상 레지스터 쓰기 마스크를 지정하는 것이 좋은 코딩 스타일입니다. 코드를 더 쉽게 읽고 유지 관리할 수 있습니다.
  • x가 y보다 앞서고, y가 z보다 앞서고, z가 w보다 앞에 있는 한 성분의 모든 조합을 지정할 수 있습니다(아무것도 포함하지 않음).
  • oPts 및 oFog 출력 레지스터는 하나의 마스크만 사용해야 합니다.
  • 특정 명령은 대상 레지스터가 단일 쓰기 마스크(exp, expp, log, logp, pow, rcp 및 rsq)를 사용하도록 요구합니다.
  • 버전 1.0에서 frc 명령에는 .x, .y 또는 .xy 마스크 조합 중 하나가 필요했습니다. 버전 2.0에는 마스크 제한이 없습니다.
  • sincos에는 .x 또는 .y 또는 .xyz 마스크 조합 중 하나가 필요합니다.
  • m3x2에는 .xy 쓰기 마스크가 필요합니다.
  • m3x3 및 m4x3에는 .xyz 쓰기 마스크가 필요합니다.
  • m3x4 및 m4x4에는 .xyz 쓰기 마스크 또는 기본 쓰기 마스크(xyzw)가 필요합니다.

텍스처 레지스터 마스크

텍스처 좌표 레지스터에서 한정자를 사용하기 위한 유효성 검사 규칙은 다른 레지스터에 대한 유효성 검사 규칙보다 엄격합니다.

  • oTn이 기록되면 이전 레지스터(oTn-1 ~ oT0)도 모두 기록되어야 합니다.
  • 모든 oT# 레지스터에 대한 "결합된" 쓰기 마스크는 정확히 다음 중 하나여야 합니다.
    • .x
    • .xy
    • .xyz
    • .xyzw(성분 한정자를 사용하지 않는 것과 동일)

예를 들어, 꼭짓점 셰이더는 별도의 명령으로 텍스처 레지스터에 출력할 수 있습니다.

    oT1.y  
    oT0.y  
    oT2  
    oT0.xz  
    oT1.x

또는 명령을 결합할 수 있습니다.

    oT0.xyz  
    oT1.xy  
    oT2.xyzw    

이러한 제한은 텍스처 좌표 레지스터에만 적용됩니다.

꼭짓점 셰이더 레지스터 한정자