да, я хочу переместить точку на плоскости экрана, поэтому, например, я мог бы визуализировать куб в той точке, где находится моя мышь, используя трехмерные координаты, а затем я снимаю линию из этой позиции в место куда указывает моя мышь, чтобы он попадал в треугольник в моем трехмерном мире, и таким образом я мог выделить этот объект с помощью мыши.
извините за неясность: /
-
Редактировать: ууууу, я понял, как работает с этим уроком! спасибо, я не знал, что это будет так просто!
Это код, который я сейчас использую, и он прекрасно работает:
void GetOGLPos(int x, int y, GLdouble &posX, GLdouble &posY, GLdouble &posZ){
GLint viewport[4];
GLdouble modelview[16];
GLdouble projection[16];
GLfloat winX, winY, winZ;
glGetDoublev(GL_MODELVIEW_MATRIX, modelview);
glGetDoublev(GL_PROJECTION_MATRIX, projection);
glGetIntegerv(GL_VIEWPORT, viewport);
winX = (float)x;
winY = (float)viewport[3]-(float)y;
glReadPixels(x, int(winY), 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &winZ);
gluUnProject(winX, winY, winZ, modelview, projection, viewport, &posX, &posY, &posZ);
}