Я работаю с трехмерной графикой и столкнулся с проблемой. У меня есть модели, которые движутся в мире. Модели имеют базовый класс, который содержит их ориентацию в виде трех векторов ортогональных единиц, а именно: Направление , Вверх и Вправо . Они указывают, куда направлен фронт модели, соответственно вверх и в правильном направлении.
ИИ модели преследует цель путем изменения вектора Направление модели и всех других векторов ориентации соответственно, чтобы имитировать, что модель указывает на цель.
Я не могу отслеживать углы, на которые ИИ изменяет векторы ориентации, потому что файлы ИИ уже были предварительно скомпилированы, и я не могу их изменить. Кроме того, ИИ изменяет векторы, используя координаты положения модели и координаты положения цели.
У меня вопрос, как я могу получить рыскание , шаг и крен из векторов ориентации, чтобы создать матрицу вращения для поворота всей модели желаемая ориентация?
Спасибо за любую помощь.
[EDIT]
Благодаря данному ответу я нашел это:
X Y Z W
- -
Right | Rx Ry Rz Rw |
Up | Ux Uy Uz Uw |
-Forward |-Fx -Fy -Fz -Fw |
Translation | Tx Ty Tz Tw |
- -
Так должна быть настроена матрица для получения матрицы мира с использованием векторов ориентации (без масштабирования: для масштабирования просто создайте масштабную матрицу и умножьте ее на это).
[решаемые]