m3x3 — против
Умножает 3-компонентный вектор на матрицу 3x3.
Синтаксис
m3x3 dst, src0, src1 |
---|
where
- dst — это регистр назначения. Результат представляет собой вектор из 3 компонентов.
- src0 — это регистр источника, представляющий 3-компонентный вектор.
- src1 — это регистр источника, представляющий матрицу 3x3, которая соответствует первому из трех последовательных регистров.
Комментарии
Версии вершинного шейдера | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
m3x3 | x | x | x | x | x | x |
Маска xyz требуется для регистра назначения. Модификаторы 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);
Входной вектор находится в register src0. Входная матрица 3x3 находится в регистре src1, а следующие два более высоких регистра, как показано в расширении ниже. Создается трехмерный результат, в результате чего другой элемент целевого регистра (dest.w) остается без изменений.
Эта операция обычно используется для преобразования нормальных векторов во время вычислений освещения. Эта инструкция реализуется как пара точечных продуктов, как показано ниже.
m3x3 r0.xyz, r1, c0 which will be expanded to:
dp3 r0.x, r1, c0
dp3 r0.y, r1, c1
dp3 r0.z, r1, c2
Связанные темы
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по