glm :: unProject给出一半预期值

时间:2014-07-31 15:31:08

标签: c++ opengl projection glm-math

我遇到了glm :: unProject的问题。我试图将我的QGLWidget中的光标位置转换为世界坐标。然而,来自unProject的坐标是他们应该的一半。

我在特定坐标处绘制了一些形状,如果我将鼠标悬停在它们上面,坐标就是它们绘制的一半。

cubes

在上面的图片中,左侧多维数据集位于原点,右侧位于(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 个答案:

没有答案