If you have models in a world, you usually transform them from model space to world space to camera space to clip space. That's three transformations. Now I read here:
http://www.arcsynthesis.org/gltut/Po...d%20Space.html
that sending a model-to-world transformation matrix and a world-to-camera transformation matrix to the shader is usually a bad idea, because you get precision issues (explained in that link). The better way to calculate the model-to-world and world-to-camera matrices using doubles, multiply them to a model-to-camera matrix, then convert that double matrix into a single precision float matrix, then upload that to the shader. (all explained in that link) My question is, why not multiply the camera-to-clip or perspective projection matrix in there as well? Sure the CPU now has more work to do per model in your world, but now your vertex shader is doing less work per vertex, which seems like a good trade.