OpenColorIO icon indicating copy to clipboard operation
OpenColorIO copied to clipboard

Mixing helpers should handle linear color picking roles better

Open doug-walker opened this issue 4 years ago • 0 comments

The MixingHelpers classes in the apphelpers directory are intended to help applications build sensible tools for mixing (that is, choosing or picking) color values via a user interface, for example using RGB or HSV sliders.

The classes are intended to allow applications to provide a color mixing tool that could be used in either the linear working/rendering space or the more perceptually uniform display space. When mixing in display space, the slider response for the RGB sliders can be uniform. This will put middle gray near the middle of the slider. Alternatively, when mixing in the linear working space, the slider response needs to be non-linear in order to put middle gray near the middle of the slider (this is similar to a taper curve used for an audio fader). The MixingHelpers classes provide this functionality.

The non-linear slider behavior is controlled by the MixingColorSpaceManager::isPerceptuallyUniform method (if that returns false, the non-linear taper is activated).

If the color_picking role is defined by the config, the mixing color space is locked to be that role.

In the Sony Imageworks configs and the ACES config, the color_picking role was always set to a video-like space. Hence, isPerceptuallyUniform always returns true if the color_picking role is set.

However, recent discussion in the UX working group has revealed that some users prefer to mix colors in a linear color space such as ACEScg. In those cases, isPerceptuallyUniform should return false so that the non-linear taper may be applied to the sliders.

In order to address this, there needs to be a way to determine if a given color space is linear (and therefore not perceptually uniform). Since that could also be a generally useful feature and also require a certain amount of discussion, a separate issue, #1399, has been created for that task.

doug-walker avatar May 05 '21 02:05 doug-walker