대상 레지스터 마스킹
마스킹은 명령의 결과로 업데이트될 대상 레지스터의 성분을 지정합니다. 텍스처 레지스터에는 한 집합의 규칙이 있고 비텍스처 레지스터에는 또 다른 규칙 집합이 있습니다.
- 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
이러한 제한은 텍스처 좌표 레지스터에만 적용됩니다.
관련 항목