Для целей lerping мне нужно разложить матрицу 4x4 на кватернион и vec3. Схват кватерниона прост, так как вы можете просто передать матрицу в конструктор, но я не могу найти способ захватить перевод. Неужели должен быть способ?glm - Разложить mat4 в перевод и вращение?
14
A
ответ
11
Похоже GLM 0.9.6 поддерживает матрицы разложения http://glm.g-truc.net/0.9.6/api/a00204.html
glm::mat4 transformation; // your transformation matrix.
glm::vec3 scale;
glm::quat rotation;
glm::vec3 translation;
glm::vec3 skew;
glm::vec4 perspective;
glm::decompose(transformation, scale, rotation, translation, skew, perspective);
18
glm::vec3(m[3])
вектор позиции (при условии, m
является glm::mat4
)
5
В версии GLM-0.9.8.1 вы должны включать в себя:
#include <glm/gtx/matrix_decompose.hpp>
Чтобы использовать его:
glm::mat4 transformation; // your transformation matrix.
glm::vec3 scale;
glm::quat rotation;
glm::vec3 translation;
glm::vec3 skew;
glm::vec4 perspective;
glm::decompose(transformation, scale, rotation, translation, skew,perspective);
Помните, что результирующий кватернион неправильный. Он возвращает свое сопряжение!
Чтобы исправить это добавить это в ваш код:
rotation=glm::conjugate(rotation);
+1
Thankk the bunch, действительно странный API – lama12345
Смежные вопросы
- 1. Установить вращение матрицы в glm :: mat4
- 2. glm :: mat4 * glm :: mat4 дает неправильные результаты?
- 3. Как glm :: vec3 и glm :: mat4 инициализирован?
- 4. Вращение, масштабирование и перевод 2d точек в GLM
- 5. C++ glm Opengl Преобразование и вращение glm :: vec4 с glm :: mat4
- 6. Преобразование glm :: mat4 в XMFLOAT4X4
- 7. GLM :: Поворот вызывает неправильное вращение?
- 8. Вращение OpenGL вокруг точки с использованием GLM
- 9. Как читать значения из glm :: mat4
- 10. Multiply vec3 с mat4 использованием GLM
- 11. glm :: перевод с местным пространством
- 12. Вращение и перевод прямоугольника
- 13. Вращение и перевод объектов
- 14. OpenGL - перевод glm и масштабная композиция
- 15. OpenGL перевод glm справа или слева?
- 16. Разложить матрицу гомографии на поворот и перевод
- 17. GLM - вращение делает объекты исчезающими
- 18. Поворот и перевод объекта в локальной и глобальной ориентации с помощью glm
- 19. OpenGL - перевод растягивается и искажает спрайт
- 20. javascript вращение перевод функции
- 21. Как правильно писать матрицы вращения вручную с помощью glm :: mat4?
- 22. Вращение объекта с кватернионом
- 23. Отменить/предотвратить вращение вокруг определенной оси с помощью glm
- 24. Перевод камеры в OpenGL
- 25. Как отрицать вращение кватерниона GLM на любой оси?
- 26. Matlab матричный перевод и вращение несколько раз
- 27. Обработка - Перевод и Вращение, для цикла
- 28. Вращение и перевод по координате объекта
- 29. Вращение, перевод и местоположение камеры по умолчанию
- 30. вращение комбинаций и перевод с помощью трёх.js
документация немного устарел на том (даже для текущего v0.9.7), вам необходимо включить вместо , чтобы он работал. –