大家帮忙看看OpenGL中选择物体的问题,hit总是0
参数point是鼠标点击传进去的,NEHE的教程也看了,一样啊,可是就是结果不对,谢谢
void CVImagingView::SelectObj(CPoint point)
{
GLuint selectBuf[BUFSIZE];
GLint hits;
glSelectBuffer(BUFSIZE, selectBuf);
(void)glRenderMode(GL_SELECT);
glInitNames();
glPushName(0);
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
gluPickMatrix((GLdouble) point.x, (GLdouble) (m_viewportMatrix[3] - point.y),
1.0, 1.0, m_viewportMatrix);
gluPerspective(45.0f,
(GLfloat)(m_viewportMatrix[2]-m_viewportMatrix[0])/(GLfloat)(m_viewportMatrix[3]-m_viewportMatrix[1]),
zNear, zFar);
glMatrixMode(GL_MODELVIEW);
DrawScene(GL_SELECT);
glPopMatrix();
hits = glRenderMode(GL_RENDER);
ProcessHit(hits, selectBuf);
}
问题点数:50、回复次数:3Top
1 楼castle64(castle)回复于 2004-07-02 12:22:57 得分 10
帮你顶Top
2 楼Hackevin(小土)回复于 2004-07-02 18:51:21 得分 0
help me, pls~~~~~~~Top
3 楼syy64(太平洋)回复于 2004-07-02 22:13:14 得分 40
设GLMakeCurrent函数了吗?
glInitNames();
glPushName(0);
上面两句也不应该放这儿,应该在Ondraw里面。
Top




