glReadPixels question

I have a sphere and am looking from an arbitary position (using gluLookAt) at the surface of the sphere towards the center/origin of the sphere.

I need to transform screen co-ords into GL co-ords and gluUnProject is my answer.

However I do not understand how glReadPixels is used to return the winZ part of the screen co-ord.

How does glReadPixels know where the surface of my sphere is?
Is there some sort of depth testing going on that I need to set up first?

At the moment my viewport clipping planes surround the entire sphere so where is glReadPixels going to get the depth from?
Also it’s a wire frame sphere so a click can go “right through” the sphere?!

I don’t understand how winZ is determined - can someone please explain it to me in noob language?

Thanks
Paul

Hi,

If I’m mistaken, disregard this response, but it sounds like your issue could be resolved with picking.

OpenGL has built-in functionality to determine what object is being drawn at a certain screen position.

Selection can actually get kind of complex, but in the simplest sense, you give ID numbers (GLuint’s) to different parts of a scene, and render that information into a selection buffer which can be used to determine screen coordinates of objects.

The best advice may be to refer you to THE RED BOOK (Ch. 12) Selection and Feedback

Sorry I couldn’t give a simple answer,
-Rawk