Palette gradient algorithms
I've implemented a new way to generate gradients between palette colors,
and I have been trying out some different color interpolation methods.
None of them really work that well so I started reading about it and it
actually seems to be a very complicated thing to mix colors realistically.
Here are the methods I tried:

The first one converts the colors to HSL color space and performs the interpolation there. It works nice for similar hues but breaks down for large hue differences.
The second one is simple RGB interpolation which results in very desaturated colors in the middle.
The last one is an attempt to combine the first two, but is pretty similar to RGB.
I'm not sure if I should spend time on this, but it would be nice to get it right. It might also prove useful if I decide to implement more advanced brushes with color mixing.
What do you think, is it good enough? Does anyone have any insight into this problem?
and I have been trying out some different color interpolation methods.
None of them really work that well so I started reading about it and it
actually seems to be a very complicated thing to mix colors realistically.
Here are the methods I tried:

The first one converts the colors to HSL color space and performs the interpolation there. It works nice for similar hues but breaks down for large hue differences.
The second one is simple RGB interpolation which results in very desaturated colors in the middle.
The last one is an attempt to combine the first two, but is pretty similar to RGB.
I'm not sure if I should spend time on this, but it would be nice to get it right. It might also prove useful if I decide to implement more advanced brushes with color mixing.
What do you think, is it good enough? Does anyone have any insight into this problem?
Comments
what the human eye perceives as a certain amount of color change.
http://en.wikipedia.org/wiki/Lab_color_space
This article might be of interest:
http://www.codeproject.com/Articles/19045/Manipulating-colors-in-NET-Part-1
I tweaked the hybrid a bit to get more of the HSL interpolations saturated colors. It's basically interpolating between the RGB and HSL gradients depending on the difference in hue. Opposite hues give 100% RGB and similar hues give more of the HSL interpolated gradient:
The RGB color space (256*256*256) is quite a lot bigger than HSL (360*100*100) so there will be some loss when going from RGB to HSL and back (like ff00ff turning into ff00fb). So yeah, maybe it would make sense to store HSL at higher precision. Hmm.
http://www.codeproject.com/Articles/19045/Manipulating-colors-in-NET-Part-1
If not, I do agree with @Spitznagl when it comes to exact color values and sequences of colors to choose from (not flood fill).