gluUnProject — map window coordinates to object coordinates

C Specification

GLint gluUnProject(GLdouble winX,
 GLdouble winY,
 GLdouble winZ,
 const GLdouble * model,
 const GLdouble * proj,
 const GLint * view,
 GLdouble* objX,
 GLdouble* objY,
 GLdouble* objZ);


winX, winY, winZ

Specify the window coordinates to be mapped.


Specifies the modelview matrix (as from a glGetDoublev call).


Specifies the projection matrix (as from a glGetDoublev call).


Specifies the viewport (as from a glGetIntegerv call).

objX, objY, objZ

Returns the computed object coordinates.


gluUnProject maps the specified window coordinates into object coordinates using model, proj, and view. The result is stored in objX, objY, and objZ. A return value of GLU_TRUE indicates success; a return value of GLU_FALSE indicates failure.

To compute the coordinates objX objY objZ , gluUnProject multiplies the normalized device coordinates by the inverse of model * proj as follows:

objX objY objZ W = INV P M 2 winX - view 0 view 2 - 1 2 winY - view 1 view 3 - 1 2 winZ - 1 1

INV denotes matrix inversion. W is an unused variable, included for consistent matrix notation.

See Also

gluProject, glGet


Copyright © 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see