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


m3x2 — ps

Умножает вектор из трех компонентов на матрицу 3x2.

Синтаксис

m3x2 dst, src0, src1

 

where

  • dst — регистр назначения. Результатом является 2-компонентный вектор.
  • src0 — это регистр источника, представляющий вектор из 3 компонентов.
  • src1 — это исходный регистр, представляющий матрицу 3x2, которая соответствует первому из двух последовательных регистров.

Комментарии

Версии шейдера пикселей 1_1 1_2 1_3 1_4 2_0 2_x 2_sw 3_0 3_sw
m3x2 x x x x x

 

Маска xy требуется для регистра назначения. Модификаторы negate и swizzle разрешены для src0, но не для src1.

В следующих уравнениях показано, как работает инструкция:

dest.x = (src0.x*src1.x) + (src0.y*src1.y) + (src0.z*src1.z);
dest.y = (src0.x*src2.x) + (src0.y*src2.y) + (src0.z*src2.z);

Входной вектор находится в регистре src0. Входная матрица 3x2 находится в регистре src1 и следующем более высоком регистре в том же файле регистра, как показано в следующем расширении. Создается двухd-результат, в результате чего остальные элементы целевого регистра (dest.z и dest.w) не затрагиваются.

Эта операция обычно используется для двухd-преобразований. Эта инструкция реализуется как пара точечных продуктов, как показано ниже.

m3x2   r0.xy, r1, c0   which will be expanded to:

dp3   r0.x, r1, c0
dp3   r0.y, r1, c1

Модификаторы swizzle и negate недопустимы для регистра src1. Регистр dst и src0 или любой из регистров src1+i не может быть одинаковым.

Инструкции по шейдеру пикселей