如何解决用gluUnProject进行鼠标拾取不起作用
我正在尝试使用gluUnProject来实现鼠标的拾取,但是它返回的向量似乎是这样。
/* create ray */
NSPoint mousePosition = [event locationInWindow];
CGFloat clickX = (mousePosition.x/750-0.5)*2;
CGFloat clickY = (mousePosition.y/750-0.5)*2;
GLint viewport[4];
GLdouble modelview[16];
GLdouble projection[16];
GLdouble nearx,neary,nearz;
GLdouble farx,fary,farz;
glGetIntegerv(GL_VIEWPORT,viewport);
glGetDoublev(GL_MODELVIEW_MATRIX,modelview);
glGetDoublev(GL_PROJECTION_MATRIX,projection);
gluUnProject(clickX,clickY,0.0f,modelview,projection,viewport,&nearx,&neary,&nearz);
gluUnProject(clickX,1.0f,&farx,&fary,&farz);
NSLog(@"%f %f %f",farx-nearx,fary-neary,farz-nearz);
点击时输出
2020-08-18 03:00:24.092021+0200 3D[2266:115052] -165.663323 -165.669172 -496.999605
相机在(0,0)的位置(0,0)。单击是在窗口中间完成的(clickX = 0,clickY = 0)。我希望方向是(0,0,-1)。光线不应在左/底方向上偏离。我在做什么错了?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。