원본 레지스터 스위즐링(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와 동등함) 중 하나를 지정해야 합니다.
관련 항목