матрица умножения GLM c ++ с вектором

Я пытаюсь умножить матрицу 4 на 3 с вектором столбца измерения 3, используя c ++ glm.

Вот как это выглядит:

glm::vec3 v3 = ...;
glm::mat4x3 mat = ...;
glm::vec4 result = mat * v3;

VS2012 показывает мне следующую ошибку в ‘*’:

IntelliSense: ни один оператор «*» не соответствует этим операндам

Типы операндов: glm :: mat4x3 * glm :: vec3 …

Во время компиляции обнаружилась еще одна ошибка:

ошибка C2679: двоичный файл ‘*’: не найден оператор, который принимает
правый операнд типа ‘glm :: vec3’ (или нет приемлемого
преобразование)

Итак, как правильно сделать это умножение?

Мой ответ:
Итак, я знаю, где не так уже после нескольких экспериментов. По сути, ключевым моментом является то, что способ, которым glm определяет матрицу, отличается от нашего обычного способа. glm::mat4x3 mat фактически создаст матрицу 3 на 4 с 3 строками и 4 столбцами. И если вы получите доступ по mat[i] он вернет вам i-й столбец вместо i-го ряда.

2

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]