У меня проблема с glm :: unProject. Я пытаюсь преобразовать позицию курсора в моем QGLWidget в мировые координаты. Однако координаты, выходящие из unProject, — это половина того, что должно быть.
Я нарисовал несколько фигур с определенными координатами, и, если я наведу на них курсор, координаты будут вдвое меньше, чем у них.
На картинке выше левый куб находится в начале координат, а правый — в (1, 0, 0)
но unProject говорит мне, что это в (.5, 0, 0)
Если я нарисую другой куб в том месте, где находится моя мышь, он будет визуализироваться на полпути между моей мышью и источником.
glm::unProject(glm::vec3(mouse_x, window_height - mouse_y, mouse_z),
glm::lookAt(camera_position, camera_look_at, camera_up),
glm::perspective(fov, window_width / window_height, near, far),
glm::vec4(0, 0, window_width, window_height));
Если я удвою результат от вышеупомянутого вызова, то мои координаты результата в порядке. Тем не менее, я не думаю, что это правильное решение, я подозреваю, что что-то не так с моими параметрами.
Задача ещё не решена.