glm :: unProject, дающий половину ожидаемых значений

У меня проблема с 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));

Если я удвою результат от вышеупомянутого вызова, то мои координаты результата в порядке. Тем не менее, я не думаю, что это правильное решение, я подозреваю, что что-то не так с моими параметрами.

0

Решение

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

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


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