m3x2 — vs
Умножает 3-компонентный вектор на матрицу 3x2.
Синтаксис
m3x2 dst, src0, src1 |
---|
where
- dst — это регистр назначения. Результат представляет собой двухкомпонентный вектор.
- src0 — это регистр источника, представляющий 3-компонентный вектор.
- src1 — это регистр источника, представляющий матрицу 3x2, которая соответствует первому из двух последовательных регистров.
Комментарии
Версии вершинного шейдера | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
m3x2 | x | x | x | x | x | x |
Маска xy требуется для регистра назначения. Модификаторы negate и swizzle разрешены для src0, но не для src1.
В следующих уравнениях показано, как работает инструкция:
dest.x = (src0.x * src1.x) + (src0.x * src1.y) + (src0.x * src1.z);
dest.y = (src0.x * src2.x) + (src0.y * src2.y) + (src0.z * src2.z);
Входной вектор находится в register 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. Регистр dest и src0 или любой из регистров src1+i не могут совпадать.
Связанные темы