Мне нужно извлечь матрицу преобразования из моей камеры, чтобы назначить ее для меша.
Я работаю над проектом компьютерной графики в школе, цель которого - смоделировать руки персонажа в перспективе от первого лица.
Моя реализация камеры включает в себя vector3 для положения камеры, поэтому я могу назначить это для моей сетки, проблема в том, что я пока не могу извлечь вращение камеры из моей матрицы просмотра.
Я рассчитываю свой последний шаг и рыскание в функции вращения таким образом, x и y - текущее положение мыши на экране
m_yaw += (x - m_mouseLastPosition.x) * m_rotateSpeed;
m_pitch -= (y - m_mouseLastPosition.y) * m_rotateSpeed;
Вот так я обновляю матрицу вида, когда она меняется
glm::vec3 newFront;
newFront.x = -cos(glm::radians(m_yaw)) * cos(glm::radians(m_pitch));
newFront.y = sin(glm::radians(m_yaw)) * cos(glm::radians(m_pitch));
newFront.z = sin(glm::radians(m_pitch));
m_front = glm::normalize(newFront);
m_right = glm::normalize(glm::cross(m_front, m_worldUp));
m_up = glm::normalize(glm::cross(m_right, m_front));
m_viewMatrix = glm::lookAt(m_position, (m_position + m_front), m_up);
Прямо сейчас я могу назначить положение камеры для моей сетки, как это
m_mesh.m_transform = glm::translate(glm::mat4(1.0f), m_camera.m_position);
Я могу успешно назначить положение камеры, но не поворот.
Что я ожидаю, так это назначить полную камеру transform моей сетке или извлеким вращение независимо и назначим ее сетке после.