Just to wrap up some of the claims in this thread:
Indeed, 3d graphics uses floating point numbers, mainly for things like vertex positions that can be from quite different intervals. As soon as you start rasterizing (i.e. fiddle with pixel positions) everything is done in fixed comma/integer. There seem to be two reasons for this. 1st integer math used to be much faster than float math back in the olden days when the algorithms were cast in concrete, 2nd noone needs floating point precision anyway on screens of some 1e3 pixels width.
Nowadays operations that you would use on integers (+,*,...) are equally fast on float (pipelined performance, of course), so speed is not an issue anymore. The main point about the Bresenham algorithms is therefore not the use of integers (which enable 100% accurate fractional math), but their incremental nature, avoiding such slow&nasty things like dividing.
The new PC graphics cards that support directX 9 are about the first available graphics hardware that use floating point numbers for things like RGB values and similar. But they do not use it for the frame buffer, so even alpha blending is still char (i.e. eight bits!). Floats come into use when you try to do sophisticated things like tricky material simulations or even flow solvers that run on the gpu. |