1991-2006
Silicon Graphics, Inc.
gluUnProject
3G

# 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

## Parameters

`winX`
`winY`
`winZ`

  Specify the window coordinates to be mapped.

`model`

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

`proj`

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

`view`

  Specifies the viewport (as from a glGetIntegerv call).

`objX`
`objY`
`objZ`

  Returns the computed object coordinates.

## Description

`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 &af; P &it; M &it; 2 &af; winX - view &af; 0 view &af; 2 - 1 2 &af; winY - view &af; 1 view &af; 3 - 1 2 &af; winZ - 1 1 INV denotes matrix inversion. W is an unused variable, included for consistent matrix notation.

## See Also

gluProject, glGet

## Copyright

Copyright 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.