Модификаторы исходного регистра шейдера пикселей
Используйте модификаторы регистра источника, чтобы изменить значение, считываемое из регистра перед выполнением инструкции. Содержимое исходного регистра остается без изменений. Модификаторы полезны для настройки диапазона данных регистра при подготовке к инструкции. Набор модификаторов, называемых селекторами, копирует или реплицирует данные из одного канала (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 |
negate | -Зарегистрировать | X | X | X | X |
масштабировать на 2 | register_x2 | X | |||
масштабирование со знаком | register_bx2 | X | X | X | X |
Модификаторы texld и texcrd | register_d* | X | X | X | X |
source register swizzling | register.xyzw | X | X | X | X |
Модификаторы регистра источника можно использовать только в арифметических инструкциях. Их нельзя использовать в инструкциях по адресу текстуры. Исключением является модификатор масштабирования на 2 . В версии 1_1 масштабирование со знаком можно использовать в исходном аргументе любой инструкции texm*. В версии 1_2 или 1_3 в исходном аргументе любой инструкции адреса текстуры можно использовать масштаб со знаком.
Некоторые ограничения модификаторов:
- Negate можно сочетать с модификатором смещения, масштабирования со знаком или модификатором scalex2. При объединении отмена выполняется последним.
- Инвертировать нельзя комбинировать с любым другим модификатором.
- Инвертирование, отклонение, смещение, масштабирование со знаком и scalex2 можно объединить с любым селектором.
- Модификаторы регистра источника не следует использовать в регистрах констант, так как они приводят к неопределенным результатам. В версии 1_4 модификаторы для констант запрещены и не будут проверяться.
ps_2_0 и выше
Для версий ps_2_0 и более поздних версий было упрощено количество модификаторов.
Negate
Отмените содержимое исходного регистра.
Модификатор компонента | Описание |
---|---|
-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 |
---|---|---|---|---|---|
abs | x | x |
Если какой-либо шейдер версии 3 считывает данные из одного или нескольких постоянных регистров float (c#), одно из следующих значений должно иметь значение true.
- Все постоянные регистры с плавающей запятой должны использовать модификатор abs.
- Ни один из постоянных регистров с плавающей запятой не может использовать модификатор abs.
Связанные темы