如何使用Qt的QVector3D :: unproject()函数?

时间:2016-07-16 16:21:46

标签: qt opengl qvector3d

我正在使用新的QOpenGLWidget类在Qt中执行一个opengl项目。 我点击时只是试图获得鼠标的opengl世界坐标。 我找到了很多方法,但有些方法已经过时,其他方法无效。然后我找到了QVector3D :: unproject()函数,但是没有得到正确的坐标。 到目前为止,这是我的代码的一部分:

QMatrix4x4 modelView;
modelView.setToIdentity();
modelView.lookAt(m_camera.getPosition(), m_camera.getTarget(), m_camera.getUp());

QMatrix4x4 projection;
projection.perspective(70.0, width() / height(), 0.1, 120.0);

GLint view[4];
glGetIntegerv(GL_VIEWPORT, &view[0]);

QVector3D worldPosition = QVector3D(event->pos().x(), event->pos().y(), 0).unproject(modelView, projection, QRect(view[0], view[1], view[2], view[3]));
qDebug() << worldPosition;

你知道为什么我得到(1.96532,-3.93444,4.93216)我应该(-0.5,-0.5,0.0)吗?

0 个答案:

没有答案