Is there a way to “re-scale” the world coordinate system so that, on the plane Z=0, the WCS would map one X or Y unit to one screen pixel?

That is, on a 640x480 screen, screen coordinate ( 0,0 ) would map to WCS ( 0,480 ) and screen coordinate ( 0,1 ) would map to WCS ( 0, 479 ) and SC ( 1, 0 ) would map to WCS ( 1, 480 ), etc…

Do I have to do the translation myself using gluUnproject or something similar?

Is there a way to accomplish this using the
glPushMatrix(), glPopMatrix() functions?
How would the performance of that approach compare to the other solutions?

Originally posted by bluephysics@excite.com:
[b]Is there a way to “re-scale” the world coordinate system so that, on the plane Z=0, the WCS would map one X or Y unit to one screen pixel?

That is, on a 640x480 screen, screen coordinate ( 0,0 ) would map to WCS ( 0,480 ) and screen coordinate ( 0,1 ) would map to WCS ( 0, 479 ) and SC ( 1, 0 ) would map to WCS ( 1, 480 ), etc…

Do I have to do the translation myself using gluUnproject or something similar?