08-05-2018, 05:21 PM
Inside tilengine I do the matrix calculations of edge points using floating point arithmetic, but then interpolated across using fixed point.
Classic systems lack floating point hardware so fixed point was a must, because emulating floating point using integers is very expensive. But there's another reason: floating point suffers precision loss because of accumulative rounding errors, whereas fixed point is stable and deterministic. Unless the extended range of floating point is required (the ability to merge very large and very small numbers), I'd rather recommend fixed point arithmetic when performing incremental calculations.
Classic systems lack floating point hardware so fixed point was a must, because emulating floating point using integers is very expensive. But there's another reason: floating point suffers precision loss because of accumulative rounding errors, whereas fixed point is stable and deterministic. Unless the extended range of floating point is required (the ability to merge very large and very small numbers), I'd rather recommend fixed point arithmetic when performing incremental calculations.