Поделиться через


Исходный регистр свисание (справочник по HLSL PS)

Swizzling относится к возможности копирования любого компонента исходного регистра в любой временный компонент регистрации. Swizzling не влияет на данные регистра источника. Перед выполнением инструкции данные в исходном регистре копируются во временный регистр.

Исходный swizzling

Исходный 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
.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
произвольный swizzle x x x x

 

* Доступно только в том случае, если маска записи назначения — W (.a).

Произвольный Swizzle

Swizzles можно применять к регистрам источников в произвольном порядке; То есть любой исходный регистр может принимать любую маску компонента в любом порядке.

Репликация Swizzle

Репликация swizzle копирует один компонент в другой. Это именно один из компонентов .x, y, .z, wwizzle (или R, .g, .b, эквивалентов).

модификаторы исходного регистра шейдера пикселей

ps_1_1__ps_1_2__ps_1_3__ps_1_4 Регистры

регистров ps_2_0

ps_2_x регистры

ps_3_0 регистры