@bluespud, Where in your update/render loop do you put the color picking code? just before the swapping of buffers or after? for example, the code i use to determine the end point of the ray has to be put at the start of all the transforms otherwise the endpoint gets transformed incorrectly. I would imagine the readpixel would need to go after the buffer is swapped (ie rendered to screen) to get the right pixel information?
You can actually call it inside the render loop so it would look like this:
-render the scene
-swap the buffers
Because Im doing this with a Gbuffer, I have the frame buffer still bound, which Im pretty sure is required.