A random thought: Maybe it could be good to use float colors (0..1) instead of byte (0..255)? Of course for final rendering it'd usually be converted to 0..255 for display/export, but it could be good to have float internally.
- Pros:
- Precision problems would get much better (byte colors often deteriorate if processed a lot)
- Could handle higher dynamic range (0..inf, or even negative)
- Cons:
- If ranges outside 0..1 would be allowed, it could be hard to define how some operators should work.
- Performance could take a hit since floats require both more memory and are computationally more expensive. There are a lot of SIMD operations that could help though.
More thoughts?
Color Complexity
Sounds good, it should be implemented, however, an abstraction for the color picker must be made, so that the only colors that the user sees are the eight digit hexadecimal RGBA color values. The other floated colors would only be used internally, such as with cloud renderers and add operations that can add color complexity.