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


Масштабирование со знаком регистра источника

Вычитает 0,5 из каждого канала и масштабирует результат на 2,0. Имя bx2 происходит от смещения и scale-times-two, что является операцией, которую он выполняет.

Синтаксис

source register_bx2

Регистрация

Регистр источника. Дополнительные сведения о типах регистров см. в разделе Ps_1_1__ps_1_2__ps_1_3__ps_1_4 Registers.

Комментарии

Эта операция обычно используется для расширения данных с [0,0 до 1,0] до [-1,0–1,0]. Этот модификатор предназначен для использования с арифметическими инструкциями. Этот модификатор обычно используется для входных данных в инструкцию по продукту точки (dp3 - ps). Использование _bx2 для данных за пределами диапазона от 0 до 1 может привести к неопределенным результатам.

Подписанная операция масштабирования применяется к данным, считываемым из регистра перед выполнением следующей инструкции. Операция применяется ко всем четырем цветовым каналам (RGBA) следующим образом:

y = 2(x - 0.5)

Содержимое регистра не изменяется. Модификатор применяется только к данным, считываемым из регистра.

Этот модификатор является взаимоисключающим с инвертом регистра источника , поэтому его нельзя применить к одному и тому же регистру.

Сведения о версии:

  • Для ps_1_0 и ps_1_1 можно использовать _bx2 в любом регистре источника для инструкций по текстуре формы texm3x2* и texm3x3*. _bx2 нельзя использовать в других инструкциях текстуры, таких как texreg2ar - ps или texreg2gb - ps.
  • Для ps_1_2 и ps_1_3 можно использовать _bx2 в любом регистре источника для любой инструкции tex*, кроме: texreg2ar - ps, texreg2gb - ps, texbem - ps или texbeml - ps.

Пример

В этом примере выполняется выборка текстуры, преобразование данных в диапазон от -1 до +1 и вычисление точечного изделия.

tex t0                        ; Read a texture color.
dp3_sat r0, t0_bx2, v0_bx2    ; Calculate a dot product.

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