Maps window coordinates to object coordinates.
A return value of GL_TRUE indicates success; a return value of GL_FALSE indicates failure.
gluUnProject maps the specified window coordinates into object coordinates using modelMatrix, projectionMatrix, and viewport. The result is stored in objX, objY, and objZ. A return value of GL_TRUE indicates success; a return value of GL_FALSE indicates failure.
To compute the coordinates (objX, objY, and objZ), gluUnProject multiplies the normalized device coordinates by the inverse of modelMatrix multiplied by projectionMatrix as follows:
( 2(winX - viewport[0]) ) | ----------------- - 1 | | viewport[2] | ( ) | | | objX | | 2(winY - viewport[1]) | | objY | = INV(PM)| ----------------- - 1 | | objZ | | viewport[3] | ( W ) | | | 2(winZ) - 1 | | | ( 1 )
INV() denotes matrix inversion. W is an unused variable, included for consistent matrix notation.
Glu Class | Tao.OpenGl Namespace | glGetDoublev | glGetIntegerv | gluProject