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


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

Используйте модификаторы исходного регистра, чтобы изменить значение, считываемое из регистра перед выполнением инструкции. Содержимое исходного регистра остается неизменным. Модификаторы полезны для настройки диапазона регистрирующих данных при подготовке инструкции. Набор модификаторов, называемых селекторами, копирует или реплицирует данные из одного канала (r,g,b,a) в другие каналы.

ps_1_1 — ps_1_4

Эта таблица определяет версии, поддерживающие каждый модификатор:

Модификаторы исходного регистра Синтаксис Версия 1_1 Версия 1_2 Версия 1_3 Версия 1_4
смещения register_bias X X X X
инвертировать 1 — регистрация X X X X
негейт -регистрировать X X X X
масштабирование на 2 register_x2 X
масштабирования подписи register_bx2 X X X X
модификаторы texld и texcrd register_d* X X X X
регистр источника register.xyzw X X X X

 

Модификаторы регистра источника можно использовать только в арифметических инструкциях. Их нельзя использовать в инструкциях по адресу текстуры. Исключением из этого является модификатор на 2. Для версии 1_1 масштаб подписи можно использовать в исходном аргументе любой инструкции texm*. Для версии 1_2 или 1_3 подписанный масштаб можно использовать в исходном аргументе любой инструкции адреса текстуры.

Некоторые ограничения модификатора:

  • Негейт может сочетаться с предвзятостью, подписанным масштабированием или модификатором scalex2. При объединении нейт выполняется последнее.
  • Инверт не может сочетаться с любым другим модификатором.
  • Инвертирование, предвзятость, смещение, подписанный масштаб и scalex2 можно объединить с любым из селекторов.
  • Модификаторы исходного регистра не должны использоваться для постоянных регистров, так как они вызывают неопределенные результаты. Для версии 1_4 модификаторы констант запрещены и завершаются ошибкой.

ps_2_0 и выше

Для версий ps_2_0 и более поздних версий было упрощено число модификаторов.

Отрицать

Нейтируйте содержимое исходного регистра.

Модификатор компонентов Описание
- r Отрицание источника

 

Модификатор negate нельзя использовать во втором исходном регистре этих инструкций: m3x2 - ps, m3x3 - ps, m3x4 - ps, m4x3 - ps, а m4x4 - ps.

Версии шейдера пикселей 2_0 2_x 2_sw 3_0 3_sw
- x x x x x

 

Абсолютная величина

Примите абсолютное значение регистра.

Версии шейдера пикселей 2_0 2_x 2_sw 3_0 3_sw
пресс x x

 

Если любой шейдер версии 3 считывается из одного или нескольких регистров с плавающей запятой констант (c#), одно из следующих значений должно быть true.

  • Все регистры с плавающей запятой должны использовать модификатор ABS.
  • Ни один из регистров с плавающей запятой не может использовать модификатор abs.

модификатор регистра пикселей