m3x4 — ps
Умножает 3-компонентный вектор на матрицу 3x4.
Синтаксис
m3x4 dst, src0, src1 |
---|
where
- dst — это регистр назначения. Результатом является вектор из 4 компонентов.
- src0 — это регистр источника, представляющий 3-компонентный вектор.
- src1 — это регистр источника, представляющий матрицу 3x4, которая соответствует первому из 4 последовательных регистров.
Комментарии
Версии шейдера пикселей | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
m3x4 | x | x | x | x | x |
Маска xyzw (по умолчанию) требуется для регистра назначения. Модификаторы 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);
dest.z = (src0.x*src3.x) + (src0.y*src3.y) + (src0.z*src3.z);
dest.w = (src0.x*src4.x) + (src0.y*src4.y) + (src0.z*src4.z);
Входной вектор находится в register src0. Входная матрица 3x4 находится в регистре src1, а следующие два более высоких регистра, как показано в расширении ниже.
Эта операция обычно используется для преобразования вектора положения матрицей, которая имеет проективный эффект, но не применяет преобразование. Эта инструкция реализуется как пара точечных продуктов, как показано ниже.
m3x4 r0.xyzw, r1, c0 will be expanded to:
dp3 r0.x, r1, c0
dp3 r0.y, r1, c1
dp3 r0.z, r1, c2
dp3 r0.w, r1, c3
Связанные темы