游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2676|回复: 3

glReadPixel获取所深度值为什么不正确?

[复制链接]

3

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2007-7-19 21:15:00 | 显示全部楼层 |阅读模式
OnLButtonDown(UINT nFlags, CPoint point)
{
        GLdouble modelMatrix[16];
        GLdouble projMatrix[16];
        GLint viewport[4];
       
        glDepthFunc(GL_LEQUAL);
        glEnable(GL_DEPTH_TEST);

        glGetDoublev(GL_MODELVIEW_MATRIX, modelMatrix);
        glGetDoublev(GL_PROJECTION_MATRIX, projMatrix);
        glGetIntegerv(GL_VIEWPORT, viewport);
       
        int wndX1,wndY1;
        wndX1=(int)point.x;
        wndY1= viewport[3] - (int)point.y-1;
       
        //gluPerspective(45.0f,(GLfloat)width/(GLfloat)height,1.0f,10000.0f);
           float wndZ1 ;
        glReadPixels(wndX1,wndY1,1,1,GL_DEPTH_COMPONENT, GL_FLOAT, &wndZ1);
        //wndZ1的值总是0.99+,应该在1~10000才对啊


        GLenum error = glGetError();

        GLdouble realX,realY,realZ;
        gluUnProject(wndX1,wndY1,wndZ1,modelMatrix,projMatrix,viewport,&realX,&realY,&realZ);  
       
        glDisable(GL_DEPTH_TEST);
       
        CWnd::OnLButtonDown(nFlags, point);
}

请大虾指点一下 [em17]

55

主题

331

帖子

337

积分

中级会员

Rank: 3Rank: 3

积分
337
发表于 2007-7-20 11:42:00 | 显示全部楼层

Re:glReadPixel获取所深度值为什么不正确?

就是 0--1

55

主题

331

帖子

337

积分

中级会员

Rank: 3Rank: 3

积分
337
发表于 2007-7-20 11:42:00 | 显示全部楼层

Re:glReadPixel获取所深度值为什么不正确?

就是 0--1

3

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2007-7-23 14:27:00 | 显示全部楼层

Re: glReadPixel获取所深度值为什么不正确?

不应该在gluPerspective指定的深度范围内吗?
我在画图时所用的三维坐标的X,Z都是正值,在这种变换后得到的基本都是负值
??? [em17]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-25 18:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表