다음을 통해 공유


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

스위즐링은 임의의 원본 레지스터 성분을 임의의 임시 레지스터 성분으로 복사하는 기능을 말합니다. 스위즐링은 원본 레지스터 데이터에는 영향 을 주지 않습니다. 명령이 실행되기 전에 원본 레지스터의 데이터가 임시 레지스터에 복사됩니다.

원본 스위즐링

원본 스위즐을 사용하면 계산을 위해 레지스터를 읽기 전에 원본 레지스터의 개별 구성 요소가 동일한 원본 레지스터의 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)인 경우에만 사용할 수 있습니다.

임의 스위즐

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

복제 스위즐

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

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

ps_1_1__ps_1_2__ps_1_3__ps_1_4 레지스터

ps_2_0 Registers

ps_2_x Registers

ps_3_0 Registers