Shade selectors

As @Rami asked the question and my answer generate more questions for @Mythmaker, and as I don’t want to pollute more the original topic Color Exercise - Crit Wanted, I create a dedicated topic to provide answer to questions about Shade selector.

Please note: this is my own comprehension of the system, documentation is a little bit light and maybe I’m wrong; don’t hesitate to complete/fix my explanation if needed.

You can see the HSV model as a cylinder, this example is easy to understand:


(original wikipedia link: HSV_color_solid_cylinder_saturation_gray.png)

So, in Krita, basically you have:

  • The value bar, allowing to choose variation for current color to black (purple arrow on my screenshot)
  • The color wheel, allowing to choose color hue (sand arrow) & saturation (green arrow)

But, choosing in the color wheel is not really precise: modifying the saturation without changing hue or modifying hue without modifying saturation, it’s practically impossible.

This is why you have the shade selectors: it allows you to define a reduced range of colors around the current color, in the 3 directions (a sort of cube of colors)
For this, you have 6 values:

  • Delta Hue = Hue range around the color
  • Delta Saturation = Saturation range around the color (negative value: applied on right side of base color, positive value: applied on left side of base color)
  • Delta Value = Value range around the color (negative value: applied on right side of base color, positive value: applied on left side of base color)
  • Shift Hue = offset applied to current color in hue
  • Shift Saturation = offset applied to current color in saturation
  • Shift Value = offset applied to current color in value

Example:
Create a color selector shifted from 50% from current color, with a range of +/-50%


(I suppose that 0.5 means 50% :slight_smile: )

Playing with all this parameters, you can ‘easily’ build your own color selector.

For example, here I’ve created:

  • 2 colors selector to get corresponding colors at 120° in hue wheel
  • 1 colors selector to get a de-saturated variation (left side) and a darker variation (right side) of current color
    From the Red: I get Green & Blue

    From the Yellow: I get Magenta & Cyan

Hope my explanation are clear and answers the original questions :slight_smile:

Grum999

2 Likes

Writing this allows me to see one thing: using percent to define Hue is not natural.

For me it should be better to use degrees values instead of percent:

  • it easier to define a color value shifted at 30°, 60°, 90°, 120° or 180° than percentage
  • percentage are not precise

Example
0 = 0°
0.0833333333333~=30° <== not possible to set 30° (0.08 = 28.8°)
0.1666666666666~=60° <== not possible to set 60° (0.16 = 57.6° to 0.17 = 61.2°)
0.25 = 90°
0.5 = 180°
0.75 = 270°
1 = 360°

So in fact, it’s not possible to use this to create a real complementary color selector for which we need to be able to provide precise degree for shift… :roll_eyes:

Grum999

1 Like

If you say so! :nerd_face:

I mean - I read the words but my brain didn’t want to know… :tired_face:

So - when I said about the rabbit hole - I followed the link you posted in the other thread to the manual, then I followed another link in that link to Wolthera’s blog where she’s talking about the various options and integrating the mypaint selector etc.

There I was merrily painting away with my happy little triangle selector… a brief internet session later and I’m once again questioning my sanity… :exploding_head:

All I really want is to have some sliders for HSV under my little triangle because Bobby Chiu said it was a good idea, and I believed him:

https://youtu.be/2PFewu9DZAM?t=3686

I tried the pigment plugin but it didn’t play nicely with my setup. :neutral_face:

1 Like

There’s so many way to represent color selector… :sweat_smile:

I think the shade selectors is interesting but unfortunately it’s not possible to create some HSV sliders with it.
I tried, but even with configuration set at +/- 100% saturation and/or value, it’s not possible to go from pure white to pure black… don’t know if it’s normal or not.
:roll_eyes:

The classic HSV selector exists but:

  • No sliders, just percentages: precise to set a specific HSV color but visually not easy to use
  • Need to open a popup dialog box that can’t be docked

Grum999

2 Likes

Yes shade selectors cannot really mimic absolute absolute sliders.
They are always relative to the current color, so if you make a saturation slider and the color already has zero saturation, the left half will not do anything, it’s all gray.

But one of the first things I did in Krita was adding shade selectors that only change saturation or value.

At first I was also annoyed that there are no absolute HSV etc. sliders in Krita, but honestly, by now I think it was wrong to think in absolute colors anyway, and I’m glad it basically forced me to just focus more on the local color contrasts, so my eagerness to bring them back has mostly faded.

Btw. to me the settings “delta” and “shift” actually seem inverted, I associate “shift” with something variable, and “delta” more with constant values, but it has exactly the opposite meaning here, so I was pretty confused at first.

There’s also a bunch of other things I’d like the shade selector to do, but every time I try to fix or improve something with that docker I feel the urge to just re-implement the whole thing based on the KisVisualColorSelector (the one in the foreground/background color dialogs).

Because the code that connects this 8-bit sRGB docker to Krita’s color managed image editing is a bit like using duct tape…

1 Like

It make sense, but I’m not sure of current implementation.
Or it’s me I don’t understand how the relative color is computed.

So basically for me, a relative saturation value should be relative to current saturation value.
If current saturation is 75%

  • A relative value of 50% is 75 - (75 * 0.5) = 37.5%
  • A relative value of 30% is 75 - (75 * 0.3) = 52.5%

For example:

  • For a RGB(255,0,0) [HSV(0, 100, 100)] with s=1.00 (100%), on left side:
    – Got color is RGB(255, 127, 127)
    – As I’m waiting RGB(255, 255, 255) [HSV(0, 0, 100)] (100% of current 100% = delta value of 100)

  • For a RGB(255,0,0) [HSV(0, 100, 100)] with s=0.50 (50%), on left side:
    – Got color is RGB(255, 63, 63) [HSV(0, 75, 100)]
    – As I’m waiting RGB(255, 127, 127) [HSV(0, 50, 100)] (50% of current 100% = delta value of 50)

  • For a RGB(255,63,63) [HSV(0, 75, 100)] with s=0.50 (50%), on left side:
    – Got color is RGB(255, 63, 63) [HSV(0, 50, 100)]
    – As I’m waiting RGB(255, 159, 159) [HSV(0, 37.5, 100)] (50% of current 75% = delta value of 37.5)

  • For a RGB(255,63,63) [HSV(0, 75, 100)] with s=0.30 (30%), on left side:
    – Got color is RGB(255, 101, 101) [HSV(0, 60, 100)]
    – As I’m waiting RGB(255, 122, 122) [HSV(0, 52.5, 100)] (30% of current 75% = delta value of 22.5)

Even if I like the concept of shade selector (provides easy interesting and smooth variation of the current color), I think there’s finally something not very intuitive in the current usage/implementation.

Ahah :sweat_smile:
I think I understand this, I have the same feeling at the office :upside_down_face:

So finally I’m not really sure about how the variations are really calculated, the only thing I’m sure is the variation/shift for hue should be defined in degrees instead of percent, because the most interesting for me with this tools was to be able to get the color a 15, 30, 60, 90, 120, 180° of current color, and it’s finally not possible :frowning:

Anyway, thanks for your explanation :hugs:

Grum999

1 Like

Ooooh! Look at all the pretty numbers… I wonder what they mean?!.. :star_struck:

Is it maybe worth disturbing @wolthera with this? She seems to have a good grasp of this stuff!

1 Like

Seems there is a misunderstanding of what I meant by relative…
The value range of the sliders depends only on the “delta” setting, but the center point of the slider is the current value, so you can only choose a range relative to that value.

To have all possible values in the slider for all starting colors, the delta would have to be so large that half of the slider is always wasted, and the current code caps the values so that this does not happen.
Well okay it works for hue because it wraps around, but the center is still the current hue and not a fixed value.

I have been wondering about the functionality of these sliders for a while and the manual wasn’t much help either, so I’m glad this thread exist.
But now the more i learn about these shade sliders i feel myself asking “why is this so needlessly complicated and why aren’t simple HSV sliders available as one of the default templates?”.

Another thing that bugs me about these is that they are supposed to help you find harmonizing adjacent shades of your current color right?
But I find it very hard to predict what each slider is even doing and i never feel like I am in control!
And if I can’t use them effectively without spending hours of trial and error what even is the point other than being a wast of time and space?
It just feels like understanding these sliders is more trouble than they are actually worth for gaining a tiny bit of productivity…

tl;dr:
what is the benefit of using these sliders in the first place?

They’re there for tone-adjustment, not to be HSV sliders in their own right.

There were HSV sliders, but they were very buggy and thus removed. I haven’t found the time and courage to rewrite them.

2 Likes

Numbers are always pretty :hugs:

:sweat_smile:

Yes, that’s why I understood…
But finally, I’m still not able to understood how the relative value is calculated and from exactly what.

I need to do more experimentation with this :grimacing:
And my be try to look at the source code to understand color calculation :thinking:

Maybe the problem is more about the documentation, that is not very explicit about how to configure and use it.
After, I agree that a functionality that is not intuitive to use will probably never be used by majority of users…

To have, from the color, a palette of derived colors in Hue/Saturation/Value
In less technical words, having different tones around the current color.

Grum999