opengl拾取遇到的问题
我用opengl画了一个三维的管线,这条三维的管线是在三个坐标面上画的。现在想实现鼠标点击某一点都出现这个点的坐标。我把整个管线当做一个图元然后给它命名,然后在选择模式下投影到相关平面,进栈出栈进行拾取。但是一直无法实现拾取拾取到管线上的所有点,只能拾取部分点,大神们帮我看一下是什么问题?代码如下:
OnLButton(UINT nFlags,CPoint point)
{
int xPos = point.x;
int yPos = point.y;
GLint hits,viewport[4];
glGetIntegerv(GL_VIEWPORT,viewport);
glRenderMode(GL_SELECT);
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glLoadIdentity();
gluPickMatrix((GLdouble)xPox,(GLdouble)viewport[3]-yPos,1,1,viewport);
gluPerspective(30.5f,aspect_ratio,1.0f,100.f);
RenderScene();
hits = glRenderMode(GL_RENDER);
if(hits == 1)
{
MessageBox(("nvnvnvnvnnvn"));
}
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
}
Void RenderScene()
{
glMstrixMode(GL_MODELVIEW);
glLoadIdentity();
glPushMatrix();
glInitNames();
glPushName(0);
glPushMatrix();
glLoadName(1);
DrawPipes(One_Pipe.pAllCount,One_Pipe.pVectors);
glPopMatrix();
}