Using gluUnProject

I really can’t find any way out of the gluUnProject function.
What’s supposed to be? When is it used?
How is formed the matrix passed in the args?

gluUnProject is used to convert from windows coordinate to object coordinate:

example, a pixel’s position might be (1, 1)

if that pixel represents a rendered point in 3D space, what were it’s original (x, y, z) values? Solution: gluUnProject() with 1, 1 and you must provide the depth value.

You can use it for tests for one thing. If you don’t need it, why worry about it?