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 не может быть одинаковым.
Связанные темы