gluUnProject4
Prev | GLU | Next

## Name

gluUnProject4 — map window and clip coordinates to object coordinates

## C Specification

`GLint `gluUnProject4`` | `(` | `GLdouble `winX`, GLdouble `winY`, GLdouble `winZ`, GLdouble `clipW`, const GLdouble *`model`, const GLdouble *`proj`, const GLint *`view`, GLdouble `near`, GLdouble `far`, GLdouble* `objX`, GLdouble* `objY`, GLdouble* `objZ`, GLdouble* `objW`);`

## Python Specification

``gluUnProject4`` | `(` | ``winX`, `winY`, `winZ`, `clipW`, `model` = `None`, `proj` = `None`, `view` = `None`, `near` = 0.0, `far` = 1.0) → (`objX`, `objY`, `objZ`, `objW`)`

## Parameters

`winX`, `winY`, `winZ`
  Specify the window coordinates to be mapped.
`clipW`
  Specify the clip w coordinate 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).
`near`, `far`
  Specifies the near and far planes (as from a `glGetDoublev` call).
`objX`, `objY`, `objZ`, `objW`
  Returns the computed object coordinates.

## Description

`gluUnProject4` maps the specified window coordinates `winX`, `winY` and `winZ` and its clip w coordinate `clipW` into object coordinates (`objX`, `objY`, `objZ`, `objW`) using `model`, `proj` and `view`. `clipW` can be other than 1 as for vertices in `glFeedbackBuffer` when data type `GL_4D_COLOR_TEXTURE` is returned. This also handles the case where the `near` and `far` planes are different from the default, 0 and 1, respectively. A return value of `GL_TRUE` indicates success; a return value of `GL_FALSE` indicates failure.

To compute the coordinates (`objX`, `objY`, `objZ` and `objW`), `gluUnProject4` multiplies the normalized device coordinates by the inverse of `model`*`proj` as follows:

( objX objY objZ objW ) = INV ( P M ) ( 2 ( winX - view [ 0 ] ) view [ 2 ] - 1 2 ( winY - view [ 1 ] ) view [ 3 ] - 1 2 ( winZ - near ) ( far - near ) - 1 clipW )

INV ( ) denotes matrix inversion.

`gluUnProject4` is equivalent to `gluUnProject` when `clipW` is 1, `near` is 0 and `far` is 1.

## Notes

`gluUnProject4` is available only if the GLU version is 1.3 or greater.

## See Also

glGet, glFeedbackBuffer, gluProject, gluUnProject

Prev | Up | Next
gluUnProject | Home | GLUT