游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1348|回复: 0

急,各位前辈,能告诉我为什么拾取不正确吗?

[复制链接]

1

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2005-5-27 15:24:00 | 显示全部楼层 |阅读模式
void pickSquares(int button, int state, int x, int y)
{
        GLuint selectBuf[BUFSIZE];
        GLint hits;
        GLint viewport[4];

        glGetIntegerv (GL_VIEWPORT, viewport);

        glSelectBuffer (BUFSIZE, selectBuf);
        (void) glRenderMode (GL_SELECT);

        glInitNames();
        glPushName(0);

        glMatrixMode (GL_PROJECTION);
----------------------------------------------------------------------------
               glMatrixMode (GL_MODEVIEW);不用这个模式selectBuf没有值??
-----------------------------------------------------------------------------
        glPushMatrix ();
        glLoadIdentity ();
        //  在鼠标位置生成5X5像素区域
        gluPickMatrix ((GLdouble) x, (GLdouble) (viewport[3] - y),
                  5.0, 5.0, viewport);
        gluOrtho2D (0.0, 3.0, 0.0, 3.0);
        drawSquares (GL_SELECT);

        glMatrixMode (GL_PROJECTION);
        glPopMatrix ();
        glFlush ();
------------------------------------------------------------------------------
                glMatrixMode (GL_MODEVIEW);还要加这个,不然重绘后黑屏??
------------------------------------------------------------------------------
        hits = glRenderMode (GL_RENDER);
//        processHits (hits, selectBuf);
        glutPostRedisplay();
}
这个是拾取的例子,我用起来发现GL_PROJECTION模式下seclectBuf得不到值?全部都是初始值,拾取模式后不转成GL_MODEVIEW重绘也是黑屏?最重要的就是不论我选取哪里得到的selectBuf都是固定的值?????请问这个是什么问题,怎么造成的?应该如何改?想了好久都不知道怎么回事,前期的glLoadName(),glPushName(),glPopName(),也都没有问题的,求助阿!各位前辈来看看!请教中。。。
我的QQ:446599565        我是新人,很多东西不会,希望各位前辈提点,在此谢过。 [em24] [em24] [em24] [em17] [em17] [em17] [em7] [em7] [em7]

sf_200552715240.rar

125.34 KB, 下载次数:

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-25 18:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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