opengl 通过射线鼠标拾取怎么都得不到准确数据

我的程序是这样的。GLdoubleobjx,objy,objz;GLdoubleModelMatrix[16],ProjMatrix[16];glGetIntegerv(... 我的程序是这样的。
GLdouble objx,objy,objz;
GLdouble ModelMatrix[16], ProjMatrix[16];

glGetIntegerv(GL_VIEWPORT, Viewport);
glGetDoublev(GL_MODELVIEW_MATRIX, ModelMatrix);
glGetDoublev(GL_PROJECTION_MATRIX, ProjMatrix);

winX = (GLdouble)xPos -145;
winY =81 + (GLdouble)Viewport[3] - (GLdouble)yPos;

gluUnProject(winX, winY, 0.0, ModelMatrix, ProjMatrix, Viewport, &objx, &objy, &objz);
nearPoint.x = objx;
nearPoint.y = objy;
nearPoint.z = objz;

由于我的程序opengl视口是在MFC cstatic控件上画的 winX winY 调试都没问题 但是gluUnProject后得到的obj数据非常的大 都是上千万的数据。得不到准确的数据。

我程序里用过许多变换 是不是这些的问题?
展开
 我来答
汉乐此8567
2011-08-05 · TA获得超过5.7万个赞
知道大有可为答主
回答量:3.1万
采纳率:0%
帮助的人:4148万
展开全部
我的程序里的变换
glLoadIdentity();
gluLookAt(eyes.x,eyes.y,eyes.z,
posing.x,posing.y,posing.z,
0,0.1,0
);
glRotatef(pitch,sin(-45),0.0f,cos(24.58));
glRotatef(-angle,0.0f,1.0f,0.0f);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dragon__y
2011-08-06 · TA获得超过435个赞
知道小有建树答主
回答量:547
采纳率:50%
帮助的人:292万
展开全部
winX = (GLdouble)xPos -145;
winY =81 + (GLdouble)Viewport[3] - (GLdouble)yPos;
glReadPixels(int(winY), int(winY),1,1,GL_DEPTH_COMPONENT,GL_FLOAT, &winZ);
gluUnProject
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
江湖的雨
2011-08-05
知道答主
回答量:28
采纳率:0%
帮助的人:5.9万
展开全部
lalala
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式