z buffer formula

I have been told that the values contained within the z-buffer are the result of a non-linear (possibly hyperbolic or logarithmic) transformation.

What is the formula to obtain the z buffer values from normalized device coordinates?

Quite an indepth look :
http://www.opengl.org/resources/faq/technical/depthbuffer.htm

Here’s the synopsis:

http://www.cs.unc.edu/~hoff/techrep/openglz.html

This applies if you create your frustum using the glFrustum call.

If that works dorbie I could kiss you, we’ve been looking for the non-linear normalization for days.

Thanks,
Colby