OPENGL获得点的深度信息
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,请高手请教这是什么原因呢?