Вибрирование регистра источника (справочник по HLSL PS)
Swizzling — это возможность копирования любого компонента исходного регистра в любой компонент временного регистра. Перевораживание не влияет на данные регистра источника. Перед выполнением инструкции данные в исходном регистре копируются во временный регистр.
Source Swizzling
Source swizzle позволяет отдельному компоненту исходного регистра принимать на себя значение любого из четырех компонентов одного и того же регистра источника перед считывания регистра для вычисления.
Например, zxxy swizzle означает:
- Компонент .x принимает значение компонента .z
- Компонент .y принимает значение компонента .x
- Компонент .z принимает значение компонента .x
- Компонент .w принимает значение компонента .y
Компоненты могут отображаться в любом порядке. Если указано менее четырех компонентов, последний компонент повторяется. Пример:
.xy = .xyyy
.wzx = .wzxx
.z = .zzzz
Если компонент не указан, вращение не применяется.
Некоторые инструкции имеют ограничения для исходного swizzle. Они перечислены на эталонных страницах инструкций.
Версии шейдера пикселей | 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 |
.Ж | 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
Swizzles можно применять к регистрам источника в произвольном порядке; то есть любой регистр источника может принимать любую маску компонента в любом порядке.
Репликация Swizzle
Репликация swizzle копирует один компонент в другой. Это именно один из компонентов Swizzle .x, .y, .z, .w (или эквивалентов .r, g, .b, .a).
Связанные темы