
It seems to me you will need a perspective projection, not an ortho one, to do this, if you are drawing the quads with perspective. Consider: you basically want the texture coordinates of the quads to be a function of their screen space coordinates. The way I would do this is to put the quads' vertex locations into their texture coordinates, and then set the texture matrix to the product of the projection and modelview matrices. That way the texture coordinates will be the same as the postprojection vertex coordinates. The postprojection vertex coordinates are in the range [1, 1] in X and Y, so apply one additional scaleandbias to the texture matrix to move these into the [0, 1] range. The texture matrix is then scaleandbias * projection * modelview. (This could be done even more efficiently using a vertex shader, though the texture matrix will do the job fine.)
