Excuse me, but it is nonsense to recommend using doubles in that case.
If your matrix is drifting away, then there is obviously a big mathematical problem in your code. Doubles would just hide the problem for a certain time, but the drifting also occurs and you will notice it after a longer period.
You should make sure, that you *never* use previous frame matrices to evaluate the current one. Drifting is preprogrammed, if you do that. You can renormalize your matrix every frame, but that''s not a good solution. The only right way to do it, is to reevaluate the current frame matrix at each and every frame. From camera angles, quaternions, or whatever other representation you have. Then you upload this fresh matrix to your 3D card at every frame.
Floats are totally sufficient for 3d graphics. Physical or accurate mathematical simulation is the only domain, where is see to need to use doubles. Floats are faster (at least on x86), are used by most (if not all) OpenGL implementations internally, and use less space.
quote:
The PC FPU uses them from default, so using single precision floats will slow down a bit the program and will give you loss of precision.
This is wrong. They are used by default, but they are slower. Switching the FPU to 32bit mode (floats), will tradeoff speed for accuracy: floats are faster, but less accurate. Although accuracy is enough for 3D graphics, as said above.
- AH