In some situations, it would be desirable to control dithering across the gradients. For example, in the case of the fire/explosion/smoke engine, it would be useful to disable dithering altogether, except for the darkest few colors (smoke), and blending into transparency.
This could probably be achieved with minimal overhead by organizing the gradients as "dither pairs," rather than a plain range of colors. The dithering algorithm would select pairs, and only ever dither between the colors within a pair, rather than between any two adjacent colors in the gradient. Thus, a pair with identical colors would effectively disable dithering across the range covered by that pair.
In some situations, it would be desirable to control dithering across the gradients. For example, in the case of the fire/explosion/smoke engine, it would be useful to disable dithering altogether, except for the darkest few colors (smoke), and blending into transparency.
This could probably be achieved with minimal overhead by organizing the gradients as "dither pairs," rather than a plain range of colors. The dithering algorithm would select pairs, and only ever dither between the colors within a pair, rather than between any two adjacent colors in the gradient. Thus, a pair with identical colors would effectively disable dithering across the range covered by that pair.