About the categorization of blend modes

My topic may be completely moot if things have changed, so I have to disclose that I haven’t used anything newer than 4.1.7, though I’ve been through the source for 4.2.9 and some bits of later versions. Until I upgrade hardware and update my OS, I’m stuck with this limited perspective. If things are different in newer versions, just let me know.

I don’t do much painting anymore, but I’m slowly migrating away from GIMP, and I have to admit that I find the categorization of the blend modes to be inaccurate and confusing.

Modes like ‘vivid light’, ‘linear light’, ‘pin light’, ‘soft light’, ‘flat light’, ‘super light’ and ‘hard light’ don’t belong in the Lighten category. They’re bidirectional modes, darkening and lightening over equal fractions of their domain. I suppose that’s almost true for ‘fog lighten’ and ‘fog darken’ as well, but I admit those are a bit of a special case.

Why is ‘overlay’ in the Mix category when it’s the transpose of ‘hard light’? I’d figure they would be together.
Why is ‘inverse subtract’ in the Arithmetic category, when it’s a duplicate of ‘linear burn’ (in the Darken category)?
What is the uniquely defining characteristic of modes in the Mix or Negative categories?

It’s hard to come up with uniformly definitive common characteristics that allow the various modes to have an unambiguous place in the structure. I know because I’ve been struggling to do it myself for my own project. I can share my own tentative approach if anyone thinks it would be useful.

Do other users find this confusing, or has everyone just become accustomed to things the way they are? Is categorization by mathematical properties too divorced from usage-driven categorization for most people? What are your thoughts?

Oh and Hi. First time posting here.

You’re the first person to write about this since we implemented the categorized list view for blending modes in 2011, so I think it’s not something that bothers a lot of people. Based on my experience giving users support, I guess that most users don’t even realize there’s more there than the default favourite modes.

I’m open to a better organization – though the set of favorites should remain the same. A patch should also include a patch for the manual: https://docs.krita.org/en/reference_manual/blending_modes.html

I was under the impression that the Favorites category was more of a meta-category, so it wouldn’t really be influenced by how its members were organized. I have to say that because in my installations of Krita, it’s empty. I probably misconfigured it or something. I honestly can’t remember. 3.1.4 and 4.1.7 were a long time ago. :slight_smile:

To be fair, like I said, I’ve been trying to solve this problem myself in my own Matlab blending/compositing tool. I finally broke down and had to admit to myself that I was being sloppy with my own organization. I’m no authority on the matter; I’m just familiar with the properties.

My own approach has been to roughly group bidirectional modes together and then group unidirectional pairs together. The pairs could certainly be split into two categories based on direction, though in my case, I preferred to keep dodges & burns separate from the hybrid modes, as they have different properties and uses. Krita doesn’t have hybrid modes, so that’s not really an obstacle. Even with subcategories within both of those major groups, there are plenty of exceptions (though again many of those exceptions aren’t shared by Krita). Other things I’ve left to a more technically-oriented Mathematical category, as well as other minor categories (relational modes, modulo modes, etc). I think there is probably room to better handle the modes I’m piling in the Mathematical category, but I haven’t come up with good approach to further subdivision that doesn’t just create a plethora of tiny nondescriptive categories.

Page 1 of this pdf shows the current categorization and properties covering almost all of the modes in Krita, though some of the properties don’t apply in Krita. Some of the mode names differ between Imblend() and Krita, but the synonyms are listed on the side.

That table only really only lists a subset of the modes, but the synopsis at the top of this file lists them all. I guess the only major relevant omission is the Component category, which Krita already has (HSX).

I think one of the properties that’s most useful for the artist to know is where the function has a neutral response (e.g. FG=black for dodges). The approach I’ve taken to categorization so far tends to group modes with similar neutral response together, and hopefully helps users understand how they can be used. Again, my perspective is distorted; maybe nobody else really bothers with these things.

I wouldn’t be against contributing more directly, but I’m hardly a competent programmer outside Matlab (if that even counts as programming). As I can’t even run the current versions on my system, editing anything is kind of out of the question, willingness aside.

Well I do struggle some times to find a blending mode i want from the list.

But I was thoghtfull of a way to search would help more. Organization wise I am a bit more neutral, but I am always in favor of good catalogation.

What sort of search would you envision? I suppose there’s a couple ways to take that.

Certainly, having a large number of modes in a single menu gets cumbersome, and a keyboard autocomplete sort of way to jump to a mode you want by name might be convenient. That’s what I do in imcompose(), but I don’t know if that works in Krita.

On the other hand, if you’re searching for a blend mode based on an expectation of its behavior rather than a known name, the problem gets more complicated. Now we’re talking about something that really has to be handled with prominent and rich documentation (and maybe menu categories, etc).

If that’s the case, then the way I see it, there are two ways to approach documentation/categorization: consider mathematical properties and their consequences, or consider everything by presuming usage conventions. I have a feeling that the best is a bit of both, but both have their problems. The former is admittedly going to wind up being unfamiliar or confusing to many. I find that the latter is what most PS tutorials always do, and it seems to end up being unhelpfully narrow and prescriptive, as it has to presume the intentions an artist might have in order to describe them.

Afaik, Krita has the second largest collection of blend modes available to the user out of any image manipulation software (after MIMT imblend). I kind of figured that if there ever develops a motivation to improve their organization or establish (at least informal) conventions addressing the same, it will happen in Krita before it happens in PS or GIMP.

Eh. Sorry if I ramble on.

I would imagine something like having a bar I could click and type the first letters of the blending mode and it would filter the modes with those first letters. no need for a fuzzy search or anything just a plain matching text. something like that it is just a thought.

Yes I do agree a bit of both would help. With the current set up I find almost all but there are a couple that I seem to never find.

Yeah, that would be a big convenience. Like I said, kb menu searching is something I use in imcompose, and it’s very helpful.

Granted, I crammed everything into a single menu with simple separators (sort of like in GIMP). With ~170 items in one menu, I’m already making my own problems, but quick kb access helps nonetheless.

We just recently added fuzzy text searching algorithm from some other application to get a fully functional action search bar in Krita (which is pretty neat - you click ctrl+Enter and you get all actions at your fingertips, including shortcuts reminder :wink: ), so no need to be shy about it, we can reuse it whereever we want :wink: Actually blending modes are already there… but only for brushes, I believe. No one made actions for “Select X blending mode for the current/selected layer(s)” yet.

1 Like

Yep, confusing as all get out. For most of them neither the names or the math mean anything to me. I tend to just flip through the list until I see something in preview that looks like what I’m after. Often I give up and move to doing something else in order to avoid the feeling of confusion.

Probably what would work for me is a lattice of small pictures that demos or previews the effect of each of the modes, maybe with no names at all. That’s likely a huge programming ask though, so I won’t be holding my breath!