Вы пытаетесь определить, какая 3D-точка видна с камеры? Если это так, вы можете найти интересную информацию на этом сайте: http://www.lighthouse3d.com/opengl/viewfrustum/.
На следующем изображении мы видим усеченный вид и усеченный элемент (выделен красным). Применение проверок видимости усеченного конуса к выбранному усечению должно соответствовать алгоритму, выбранному для отбраковки усеченного конуса.
Если вы хотите быстрое и неоптимизированное решение:
GLdouble model_view[16];
glGetDoublev(GL_MODELVIEW_MATRIX, model_view);
GLdouble projection[16];
glGetDoublev(GL_PROJECTION_MATRIX, projection);
GLint viewport[4];
glGetIntegerv(GL_VIEWPORT, viewport);
for(unsigned i=0; i<points.size(); ++i){
GLdouble winX, winY, winZ;
gluProject(points[i].x, points[i].y, points[i].z, model_view, projection, viewport, &winX, &winY, &winZ);
if(selectionMinX <= winX && winX <= selectionMaxX && selectionMinY <= winY && winY <= selectionMaxY && winZ>=0 && winZ<=1){
/// point is selected
}
}