Replying to yourself might do the trick to get an advice, because you are explaining the problem more and more and show that you take efforts yourself! wink

vec_for_screen is your best choice. If the distance between camera and surface is always the same, a fixed value for z will do it.

If the distance varies, you have to add a trace between two vec_for_screen positions, means two different values of z, that means that you send a trace rectangular to the screens 'surface', to get the distance to the surface.

http://www.conitec.net/beta/avec_for_screen.htm