Я просто пытаюсь преобразовать координаты окна в координаты объекта в OpenGL, используя gluUnproject().
Я правильно улавливаю координаты X и Y (winX и winY) окна переполнения, используя:
glutPassiveMotionFunc(mouseMove);
а затем я установил winZ с помощью
glReadPixels(int (winX), int(winY), 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &winZ)
Затем я устанавливаю posX, posY и posZ (координаты объекта), используя
gluUnProject(winX, winY, winZ, modelviewM, projectionM, viewportA, &posX, &posY, &posZ);
от:
glGetDoublev(GL_MODELVIEW_MATRIX, modelviewM);
glGetDoublev(GL_PROJECTION_MATRIX, projectionM);
glGetIntegerv(GL_VIEWPORT, viewportA);
Я не меняю никакого значения матрицы в любой момент. Проблема в том, что возвращаемые значения gluUnProject для posX, posY и posZ равны -1.0.
Кроме того, я должен сказать, что значения modelviewM и projectM являются идентификационной матрицей, а значение viewportA равно (0, 0, 1440, 720)
Есть идеи?