다음을 통해 공유


원본 레지스터 스위즐링(HLSL PS 참조)

Swizzling은 모든 원본 레지스터 구성 요소를 임시 레지스터 구성 요소에 복사하는 기능을 나타냅니다. 스위즐링은 원본 레지스터 데이터에 영향을 주지 않습니다. 명령이 실행되기 전에 원본 레지스터의 데이터가 임시 레지스터에 복사됩니다.

소스 스위즐링

원본 스위즐을 사용하면 계산을 위해 레지스터를 읽기 전에 원본 레지스터의 개별 구성 요소가 동일한 소스 레지스터의 4개 구성 요소 값을 사용할 수 있습니다.

예를 들어 .zxxy 스위즐은 다음을 의미합니다.

  • .x 구성 요소는 .z 구성 요소의 값을 사용합니다.
  • .y 구성 요소는 .x 구성 요소의 값을 사용합니다.
  • .z 구성 요소는 .x 구성 요소의 값을 사용합니다.
  • .w 구성 요소는 .y 구성 요소의 값을 사용합니다.

구성 요소는 순서에 따라 표시할 수 있습니다. 4개 미만의 구성 요소를 지정하면 마지막 구성 요소가 반복됩니다. 예를 들어:

.xy  = .xyyy
.wzx = .wzxx
.z   = .zzzz

구성 요소를 지정하지 않으면 스위즐링이 적용되지 않습니다.

일부 지침에는 원본 스위즐에 대한 제한이 있습니다. 관련 명령 참조 페이지에 나열됩니다.

픽셀 셰이더 버전 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
.x x x x x x x
.y x x x x x x
.z x* x* x* x x x x x x
.w x x x x x x x x x
.xyzw(기본값) x x x x x x x x x
.yzxw x x x x x
.zxyw x x x x x
.wzyx x x x x x
임의 스위즐 x x x x

 

* 대상 쓰기 마스크가 .w(.a)인 경우에만 사용할 수 있습니다.

임의 스위즐

스위즐은 임의의 순서로 소스 레지스터에 적용할 수 있습니다. 즉, 모든 소스 레지스터는 모든 구성 요소 마스크를 순서대로 사용할 수 있습니다.

Swizzle 복제

한 구성 요소를 다른 구성 요소에 복제합니다. 즉, 정확히 .x, .y, .z, .w 스위즐 구성 요소(또는 .r, .g, .b, .a 등가물) 중 하나를 지정해야 합니다.

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

레지스터 ps_1_1__ps_1_2__ps_1_3__ps_1_4

레지스터 ps_2_0

레지스터 ps_2_x

레지스터 ps_3_0