Change the default settings for RGBA brushtips? 🤔

I’ve been spending a lot of time over the last couple of months playing around with lightness based presets and I’ve found it quite frustrating when I’m switching between tips, because it always defaults to colour image.

Colour image is something I never use personally, and wonder how many others are actually using them for it to be the logical default over lightness?

I also think the auto neutral point should be checked as default; I’m always turning it on, and think that’s the logical start point for most use cases?

Feel free to agree with me in the comments below… :stuck_out_tongue_winking_eye:

5 Likes

Sweet and short: making more than dozens upon dozens of brush presets in the last few weeks tell me that you are on point. Default could even be Alpha Mask - I use that one more often then any other thing, followed by Lightness.

3 Likes

Okay, for stamps I use mostly lightness, but otherwise the preselection sucks.

Michelist

1 Like

I’m not sure alpha mask makes sense for RGBA tips though; I mean if I’m creating that type of tip, I generally do so with lightness in mind, and having it default to lightness points inexperienced users to the optimal use for the tip type.

I initially made it Color Image default because before Lightness Map was an option, RGBA brushtips were mainly used for image stamp brushes, and I didn’t want to mess with expectations. Now that the option has been around for a while and especially with the feature being added to the smudge engine, where it will pretty much exclusively be used for impasto type brushes, I think it makes sense to change the default.

I just made the changes in code (both defaulting to Lightness Map, and to auto neutral point), and as soon as I get it built and confirm that it works, I’ll submit an MR for it.

4 Likes

Awesome!!! :grin:

:partying_face: :beers:

Could it not be made to remember the last chosen mode + settings? I find it so weird switching tips should change the any of those at all.

I think it’s actually supposed to remember the settings for each brushtip when you switch back to it, but that definitely doesn’t happen. I’m currently looking through the code to find where/how saving the brushtip settings is supposed to happen, to see if I can fix that.

Overall, this fix turned out to be more complicated than I initially hoped, and I probably won’t be able to work on it again until Monday. Hopefully I’ll get the MR submitted sometime next week.

2 Likes

@Mythmaker @TheFlow @Michelist @AlansArtLog (and I’ll add @RamonM, because he makes a lot of brushes)

Before I submit the MR for this, I’d like some feedback on how you’d like this to work. Here are the options I see, though feel free to suggest others:

  1. Just default to Lightness and Auto-adjust for all RGBA brushtips. Changes to a brushtip revert when a different brushtip is selected.

  2. Default to Lightness and Auto-adjust, but remember the last settings for each brushtip. These settings reset each time Krita is closed and re-opens.

  3. Default to Lightness and Auto-adjust, but permanently remember the last settings for each brushtip.

I’m kind of undecided between 2 and 3, personally. Then again, I might like option 2 just because that’s what I have the code doing currently, and I’ll need to do some more work for option 3… :slight_smile:

One other question: Currently, the “Preserve brush preset settings” checkbox only refers to Size, Rotation, and Spacing. Should I have it also apply to Brush Mode?

I could also have it apply to the Neutral Point, Brightness, and Contrast settings, but I don’t think that’s a good idea since those settings are intended to correct issues with a given brushtip, and probably wouldn’t be appropriate when selecting a different brushtip.

2 Likes

Hallo @Voronwe13!

Your question honors me, but asking me, someone who considers Krita a hobby and is still learning to get usable results with the wealth of features, is probably like “casting pearls before swine”. You shouldn’t use me as a yardstick.

For me 2 is okay but 3 would be really great.

TL,DR

Even though I’ve used Krita on and off for years, I’ve only been intensively involved with Krita since February. In my home country people like me are called frickler or tinkerer (and some call me a computer freak who likes to play around with everything, adjust and optimize everything :slight_smile: Krita is my new toy).

Therefore, the opinion of those who use Krita more intensively, more professionally than I do, or even have Krita in professional use, have to earn money with it, should be valued higher and be more important.

Michelist

1 Like

I vote for 2. I would not do 3 if only because nothing else seems to work like 3. 3 feels like it would imply it was a property of the tip, which as I just discovered only spacing seems to be.

Regarding “Preserve brush preset settings”. I want to say yes. Like if you want to use rgba tips for non-lightness modes, it’d be super annoying if they kept switching to lightness mode. If they just stayed in the mode you were in last it wouldn’t be a problem and it wouldn’t bother you if you were working with rgba tips + lightness either. …I think

Do you have a branch I can checkout to try?

3 Likes

Thanks for asking @Voronwe13 :slight_smile:
I’m also torn between options two and three. I think I lean a little bit more toward option two because usually, I want specific settings in a brush tip in the same session. If I want to copy that one later in a new Krita instance/after a restart, I can just lock the tip settings.

About the “Preserve brush preset settings”, it would be a benefit if it is not too much work if it can store the Brush Mode also. But overall, the above solution that you already have working accounts for 80% of what takes time in the brush making, at least for me.

2 Likes

I guess we can discard option 1, as this is just a tiny bit less annoying than current solution, and both 2 and 3 sounds just so much more convenient.

Unlike the others, at least for me RGBA tip settings feel like its property. Currently modifying a brushtip in krita is rather problematic as it requires saving the tip once again, and there is no instant way to just load or overwrite it. At least personally I tend to use those settings to tweak a tip, and they stay the same for a given tip most of the time.

But both solutions are “good enough” at their own, and if you have 2 already done, maybe there’s no need to make it more complicated.

“Preserve brush preset settings” is how I intentionally imagined it working, but if remembering settings for a specific tip is possible, I guess that’s what I prefer.

2 Likes

I think I’ll go with the crowd and say number 2 - especially if it’s less work! :slight_smile: :+1:

Preserving the settings also sounds good.

By the way - are these changes universal across the brush engines that use them?

2 Likes

Okay, I just created MR 927 with these changes. The branch is voronwe/lightness-default.

Here’s a test package for Windows: voronwe-lightness-default.zip

I went with option 2 (it was the easiest), and I did make it so the “Preserve brush preset settings” applies to the Brush Mode as well.

I’ve only tested switching between the pixel and smudge engines, but it does keep the changes between those, so I’m assuming it would also apply to any other engines that use predefined brushtips. One thing to watch, though, is that the “Preserve brush preset settings” option seems to be tied to the brush engine, so if you switch brush engines, make sure to check how that is set before changing brushtips.

I’ll note that I ran into some crashes when switching brush engines, but I couldn’t tell from the crash report that it was related to my changes, and I haven’t been able to replicate the crashes since merging the latest version of master, so hopefully that’s not an issue any more. Please let me know if you run into any issues. Thanks!

1 Like

I kind of agree, but @Voronwe13 would taking option 3 make them an actual property that would get exported? If so, I really like 3, but if not, I think it would be confusing. Nothing else, not even with “Temporarily Save Tweaks to Presets” survives a restart. Really I’d prefer if tips and presets were one thing on export, but that’s another story.

Also I thought I’d go see if spacing is a property that gets exported since it gives the impression it is, just to be double sure I understand how things work, but tips don’t even remember the spacing they were saved with when “Preserve brush preset settings” is off… and I see nothing about spacing in the exported manifest. So idk how that was supposed to work, if that is a bug, or what.

Anyways, I just tried your changes. Two things I noticed just testing real quick:

  1. If you go to a brush preset that was using an rgba tip. When you switch to another tip then switch back it forgets the settings even if I change the setting before switching back and forth.

  2. If the mode is not one that takes options, you can still see the options changing even though they’re grayed out. I think they should just show the default 0, 0, like when switching to brush engines that don’t support the modes.

I ran into the crash, I can send you my crash log if it helps. It seems to happen consistently for me when I create a brand new color smudge brush, click predefined tip, then create a sketch engine brush and click predefined tip.

My 2 cents. For me the important things are:

  • The brush editor detects if i select a RGBA brushtip or RGB selecting Lightness automatically.
  • Auto, activated by default is a good option. As i test more i think is better for keeping the color accuracy with the selected color. Then if you want special effect you adjust the brushtip parameters.
  • Remember the settings (neutral, brightness and contrast) is good for testing effects between brushtips. like for example —> i test brushtip1 vs brushtip 2. It would be like “Temporarily save tweaks to presets” for parameters.
  • Brush mode remembered is good for me too. It happened while making brushes changing the brushtip for comparing and lose the adjustments. (they are 3 sliders, so i take note in paper, no big problem)
  • Size remembered when i adjust parameters. Is not comfortable to adjust the size a lot of times.

Anyway i think not too much people works inside the brush editor. Thanks a lot for the effort. :smiley: :+1:

I don’t believe it would, but I haven’t played around with exporting enough to know for sure.

Weird, that doesn’t happen for me. When I have “Preserve Brush Preset Settings” unchecked, it remembers the last setting each tip had. Is anyone else having this issue?

Hmm, I can’t recreate the crash in the way you describe, but I did find my own way to recreate the crash, and the good news is it turns out it’s not related to this patch. I’ve been able to recreate it in the latest Krita 5.0 nightly, and it seems to only happen when the brush editor is open and the brush preset is changed from a non-smudge brush to a smudge engine brush, and then a brushtip set to Lightness mode is selected. The bad news is I’m probably going to have to be the one to fix that crash anyway… :sob:

“Preserve Brush Preset Settings” is on. I can recreate consistently this way: create a brush with rgba tip, set the values to something other than 0. Restart krita just to be sure, go to that brush, open the brush editor, change to a different tip (is 0, 0, as expected), change back to the tip the brush had (it’s 0, 0, not the customized value it had). This happens regardless of whether the settings are modified/touched before you switch. I get why it might reset if they weren’t touched, but not if they are. This also happens to me some other times but can’t recreate consistently.

Regarding the crash, I can’t recreate in nightly only your branch. You might not be able to recreate because an rgba tip must be selected. So it’s: create a brand new color smudge brush, click predefined tip, select rgba tip, then create a sketch engine brush and click predefined tip then it might take a few seconds to crash, you might have to select the rgba tip again. log.

I sort of recreated your crash on nightly (I think, had to go back and forth between the engines a bit), here’s my log, is this it? If not I’ll try to recreate and file a bug.

Okay, I see what’s happening here. In this case, the changes to the brushtip Brightness/Contrast settings are saved in the Preset resource, but not the brushtip resource, so when you quit Krita, those changes as far as the brushtip resource is concerned are lost. When you reopen Krita, and open that brush preset, the changes loaded from the preset aren’t tied to the brushtip, so when you switch the brushtip and switch back, it reloads the brushtip resource, rather than remembering the changes saved in the Preset. I’ll see if there’s an easy way to fix that.

The crash is harder to replicate on the Nightly because that doesn’t default to Lightness brushtips, and it seems to only happen with Lightness brushtips, so you have to manually switch the brushtip type to Lightness to cause it. I notice both of your logs match mine, where the crash is occurring within the Smudge Engine, in the Lightness Strategy code. I haven’t checked if there’s a bug report already for this, but if not, that would be great if you could create it. I’ll reference it when I submit a fix for it. Thanks!