Чтобы прояснить ситуацию, я пытаюсь получить координаты openGL и манипулировать ими в моем коде mfc. не получить объект openGL. Я использую MFC для управления положением объектов в openGL.
Привет, я пытаюсь найти naswer в Интернете и не могу найти полное решение, которое я могу использовать, и это будет работать ...
Я разрабатываю проект MFC со статической картинкой в качестве основы для класса openGL, который рисует детали для моей игры.
Мне нужно получить координату формы из класса openGL.
Я ищу способ преобразовать координаты openGL в координаты MFC, но независимо от того, что я пытаюсь, я получаю мусор после использования gluProject или gluUnProject (я пытался сделать оба пути, но не работает)
GLdouble modelMatrix[16];
glGetDoublev(GL_MODELVIEW_MATRIX,modelMatrix);
GLdouble projMatrix[16];
glGetDoublev(GL_PROJECTION_MATRIX,projMatrix);
int viewport[4];
glGetIntegerv(GL_VIEWPORT,viewport);
POINT mouse; // Stores The X And Y Coords For The Current Mouse Position
GetCursorPos(&mouse); // Gets The Current Cursor Coordinates (Mouse Coordinates)
ScreenToClient(hWnd, &mouse);
GLdouble winX, winY, winZ; // Holds Our X, Y and Z Coordinates
winX; = (float)point.x; // Holds The Mouse X Coordinate
winY; = (float)point.y; // Holds The Mouse Y Coordinate
winY = (float)viewport[3] - winY;
glReadPixels(winX, winY, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &winZ);
GLdouble posX=s1->getPosX(), posY=s1->getPosY(), posZ=s1->getPosZ(); // Hold The Final Values
gluUnProject( winX, winY, winZ, modelMatrix, projMatrix, viewport, &posX, &posY, &posZ);
gluProject(posX, posY, posZ, modelMatrix, projMatrix, viewport, &winX, &winY, &winZ);
Это всего лишь часть кода, который я пробовал. Конечно, не gluProject и gluUnProject вместе. просто они оба были здесь, чтобы показать ..... и я знаю, что там много мусора, от некоторых из моих попыток ...
p.s. Я перепробовал еще много комбинаций и примеров из Интернета, и в моем случае ничего не помогло ...
Может кто-нибудь показать мне, как правильно сделать преобразование?
10x