Choosing the right colors for objects in a painting is often tricky, especially when the light sources themself are colored. Knowing that so called "warm" light sources (incandescent light bulbs or black body radiation of up to around 5000 K) gives a light of slightly red or yellow tint is not often sufficient. Photoshops color picker does not make things better. Knowing that the lightsource is red it is natural to turn the hue slider towards red. But by how much? And should the saturation be lowered or increased?
The first solution to picking harmonic colors is to use a color wheel that plots all hues and saturations on the same graph. Preferrably with hue as the angle around a disc and saturation as the distance to the center of the disc. This is because hue and saturation should not be independent of each other. Changing the color will not only change the hue but also the saturation. For example - going from red to cyan will cross the center because these colors are complementing each other, resulting in change in both hue and saturation. The brightness, or value, of the color should be treated separate from the other dimensions since that is what is used to describe form of three dimensional objects and has nothing to do with the actual color of the object, except when the object is exposed to a colored light source. How to pick the right value for the color however is not discussed here.
Above is a color wheel with some colors plotted. These are colors of objects with defined light spectra scanned. The colors can be seen as the local color of the objects. That is, the color when lit by a white light source containing all wavelengths.
When decreasing the intensity of the white light source and exposing the objects to another light source, with different light spectrum and therefore different color, the reflected light from the objects change. Here is one with a 5000K lamp (light spectra are real data but the light is simulated).
And here is one with a tungsten 60 W light bulb.
The white point (color) of the 5000K lamp.
The white point (color) of the tungsten 60 W light.
There is a clear and expected relation between the white point of the light source and the change in color of the reflected light from the object. Looking at the color wheel, the color seems to be pushed in the same direction from its local color as the white point of the light source is pushed from the center.
There seems to be three colors to keep in mind. The local color of the object, the white point of the light source, and the diffuse color of the object when exposed to the light source. The white point of the light source can be used for specular highlights since this light does not get filtered through the surface of the object and therefore retains its light spectrum (applies to dielectric materials, but not generally for metals and some surfaces which causes diffraction of light waves).
A rendered object exposed to a 5000K lamp.
A rendered object exposed to a Tungsten 60 W lamp.
Notice how the white light from underneath gives the same colored reflection on the ball in both cases (the ground is treated as a white light source and not as a reflective plane to show this).
Knowing the local color of the object to be painted as well as the color of the light source on the color wheel makes it easy to see what color the object reflects in that light. Adding the light source vector to the local color gives the color of the object when exposed to the colored light source.
The part that is up to the artist is to pick the colors of the objects and the light source and restricting the color gamut thereafter.
The color changes can be seen as vector addition.
To use this method inside a painting program, a color picker with the hue saturation gamut is required. In photoshop there is an extension called Kuler which works almost like a color picker even though it is meant to be used for creating color schemes. The good thing about Kuler is that it makes it possible to save and show multiple picked colors on the actual wheel. These can be used to save light source colors.
The Kuler color picker.
I created a photoshop extension that handles the last point of the limitations by using the HCL color space which is equivalent to the CIELab color space. It takes in to consideration how humans percieve color so that hue alone does not affect the percieved lightness: KalleWheel.