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


Swizzling для регистра источника (справочник по HLSL VS)

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

Зависание компонентов

Как показано в следующей таблице, свертывание можно применить к отдельным компонентам данных исходного регистра (где — один из допустимых входных регистров шейдера вершин — vs_1_1).

Модификатор компонента Описание
r.[xyzw][xyzw][xyzw][xyzw] Исходный swizzle

 

  • Все четыре компонента всегда копируются. Если указано менее четырех компонентов, последний компонент повторяется (xy означает .xyyy). Если компоненты не указаны, x повторяется (.xxxx).
  • Компоненты могут отображаться в любом порядке. V0.ywx приводит к v0.ywxx.
  • Компоненты rgba можно использовать соответственно для xyzw (r для x, g для b и т. д.).
  • В этих инструкциях реализованы однокомпонентные вибры: exp, expp, log, logp, pow, rcp, rsq. Результат этих инструкций копируется во все четыре компонента регистра назначения.

Swizzling нельзя использовать для m3x2 — vs, m3x3 — vs, m4x3 — vs, и m4x4 — против инструкций.

Модификаторы регистра вершинного шейдера