OPENGL获得点的深度信息

zjAngle 2010-11-03 10:45:42
glPushMatrix();

glGetIntegerv(GL_VIEWPORT, iViewPort); //获得视口
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(m_fCameraX, m_fCameraY, m_fCameraZ, m_fFocusX, m_fFocusY, m_fFocusZ, m_fUpX, m_fUpY, m_fUpZ); //设置摄像机坐标及方向
glGetDoublev(GL_MODELVIEW_MATRIX,dModelMatrix );

glGetDoublev(GL_PROJECTION_MATRIX,dProjMatrix);
glGetDoublev(GL_DEPTH_RANGE,depth);

GLdouble viewX,viewY,viewZ;
pointx=point.x;
pointy=point.y;
winX = (float)pointx;
winY = (float)iViewPort[3] - (float)pointy;

GLdouble ceshx,ceshy,ceshz,cesht;
GLdouble x,y,z;
GLdouble fdepth;
gluProject(0.5,0.5,0.01,dModelMatrix,dProjMatrix,iViewPort,&x,&y,&z);
glReadPixels(winX,winY,2,2,GL_DEPTH_COMPONENT,GL_FLOAT,&fdepth);
gluUnProject(winX,winY,fdepth,dModelMatrix,dProjMatrix,iViewPort,&ceshx,&ceshy,&ceshz);
为什么我用gluUnProject得到的世界坐标点不正确呢,我用(0.5,0.5 0.01)测试了gluProject函数是正确的,而且glReadPixels读取的深度值总是0.0078,请高手请教这是什么原因呢?
...全文
188 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rico_Liu 2010-11-03
  • 打赏
  • 举报
回复
只熟悉gl*函数,只能帮顶了
zjAngle 2010-11-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sin5571 的回复:]
只熟悉gl*函数,只能帮顶了
[/Quote]
谢谢哦!

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧