OpenGL拾取的问题!(附源码)

dontmakefunofme 2008-12-14 03:10:15
在WM_LBUTTONDOWN中响应

void COpenGL::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
GLuint selectBuf[BUFSIZE];
GLint hits;
GLint viewport[4];
int x, y,gi,elenum,i;

x = point.x;
y = point.y;

glGetIntegerv (GL_VIEWPORT, viewport);

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

glInitNames();
glPushName(-1);


glMatrixMode(GL_PROJECTION); // Select The Projection Matrix
glPushMatrix();//
glLoadIdentity();
gluPickMatrix((GLdouble) x, (GLdouble) (viewport[3] - y), 25.0, 25.0, viewport); //设置选择区域
gluPerspective(80.0f,1.0,1.0f,2000.3f);

//-----------------------绘制选择的物体---------------------
glPushMatrix();
glLoadIdentity(); // Reset The View
glTranslatef(0.0f,0.0f,-ShipDimen.length/160.0*130.0f+Vp.tranz);//Vp.tranx

glMultMatrixf(Transform.M);

glRotatef(Vp.yrot,0.0f,1.0f,0.0f);
glRotatef(-90.0f+Vp.xrot,1.0f,0.0f,0.0f);


glPushMatrix();

glTranslatef(-ShipDimen.length/2.0f+Vp.tranx,0.0f,-ShipDimen.depth/2.0f); //设置旋转中心点

gi=Group.SlctGp;


elenum=Group.GpQd[gi][0][0][0];

for(i=1;i<=elenum;i++)
{
glLoadName (i);//压入名称列表
glBegin(GL_QUADS);
glVertex3f(Group.GpQd[gi][i][0][0],Group.GpQd[gi][i][0][1],Group.GpQd[gi][i][0][2]);
glVertex3f(Group.GpQd[gi][i][1][0],Group.GpQd[gi][i][1][1],Group.GpQd[gi][i][1][2]);
glVertex3f(Group.GpQd[gi][i][2][0],Group.GpQd[gi][i][2][1],Group.GpQd[gi][i][2][2]);
glVertex3f(Group.GpQd[gi][i][3][0],Group.GpQd[gi][i][3][1],Group.GpQd[gi][i][3][2]);
glEnd();
}




glPopMatrix();

glPopMatrix();
//-----------------------绘制选择的物体---------------------

glPopMatrix ();
glFlush ();
hits = glRenderMode (GL_RENDER);
processHits (hits, selectBuf);


CWnd::OnLButtonDown(nFlags, point);
}




hits = glRenderMode (GL_RENDER);
hits返回值总是为0,不知道那里错了
请各位大侠帮帮忙
看一下程序那里的问题
...全文
138 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dontmakefunofme 2008-12-15
  • 打赏
  • 举报
回复
问题解决了

再选择模式下绘制时

要斜模型矩阵
glMatrixMode(GL_MODELVIEW);
qap22 2008-12-14
  • 打赏
  • 举报
回复
友情up

19,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧