а при чем тут gluUnProject? Как я понял нужно мышкой выделить точку на экране и выделить соответствующую 3д точку.
Если так то нужно использовать gluProject
Вот пример
Код:
double sx,sy,sz;
int px,py;
if(mouse.lbut)
{
double model_view[16], projection[16];
int viewport[4];
glGetDoublev(GL_MODELVIEW_MATRIX, model_view);
glGetDoublev(GL_PROJECTION_MATRIX, projection);
glGetIntegerv(GL_VIEWPORT, viewport);
for(int i=0;i<model.allpoints;i++)
{
gluProject(model.points1[i].x, model.points1[i].y, model.points1[i].z, model_view, projection, viewport, &sx, &sy, &sz);
px=int(sx);
py=int(-sy)+WindowH-20-Wheight; //тут я не понимаю откуда возникает поправка -20 (при том в разных приложениях она своя),
//так как все высоты (заголовка, рамок и т.д.) я учитываю в Wheight.
if(PointInRect(px, py)) //тут в своей функции проверяем находится ли она в выделенном мышкой прямоугольнике, или просто проверить равны ли px и py координатам мышки
model.pselnow[i]=1; // model.pselnow это bool массив для отметки выделения точек
else
model.pselnow[i]=0;
//ну и всё, дальше делаешь что надо со своей 3д точкой
}
}