Feature request: to use two or more colors at the same time at the same brush tip

If anyone is familiar with the one stroke painting by Donna Dewberry, this feature would be very useful in replicating her techniques.
https://www.youtube.com/watch?v=EGf7NlqwRJs

The other thing that would allow what you want (and much much more) is something I mentioned in the previous thread, which would be to add the option of a second brushtip that overlays the first, with the same full options of the main brushtip. This will be complicated to implement, and might have some serious performance issues, but once I have these lower-hanging fruit implemented, I’ll look at that.

One way of enabling this feature could be to make it possible set the brush color to a gradient and then set the gradient axis to change based on pen rotation, tilt direction, or stroke direction. The main issue would be preventing the gradient from transitioning too smoothly. I am aware that Corel Painter overcomes this issue by blending color on a mixer palette and then using a specialized color picker to select a color gradient from two adjacent blended colors. In the following video, the narrator explains this feature at the 5:25 minute mark:
https://www.youtube.com/watch?v=_b97dKCCG8A
Implementing this feature might require adding a CMYK/ subtractive pigment color blending mode, but I don’t believe that all digital painting programs with a color mixer palette feature include a subtractive/CMYK color blending mode (e.g. Paintstorm Studio, Artrage, Corel Painter).
I’m wondering if there is another way to include gradient color selection without having to add a mixer palette. I believe Krita used to have a mixer palette, but the feature was removed in later versions due to the issue of color blending modes on a computer screen.

I don’t know if this video adds more to the discussion than the video of Donna Dewberry, but here is another video of an artist demonstrating gradient painting with acrylic paints:
https://www.youtube.com/watch?v=CZ5vpGni7xA

@raghukamath Thanks

[quote=“Rigognos, post:4, topic:5543, full:true”]
If anyone is familiar with the one stroke painting by Donna Dewberry, this feature would be very useful in replicating her techniques.[/quote]

Thanks for the imput, that is the basic Idea even though this is not the effect I was thinking of.

I don’t really think that would be the best place to put you efforts in. It could all be too resource intensive and not pay off in the slighest.

I suggested it in the other thread because I think it’s an extension - a possibly time consuming one - of the concept of the RGBA brush implementation.

Here is the look I what thinking of:


[30 minute study by James Gurney]

You can see in the backgound paint that was problably mixed on the canvas - wet on wet - but on the face - specially on the cheek - it’s possible to see places where the paint was applied not being very well - and you can see it doesn’t need to be - some parts of the same stroke carring more red, some others more yellow. And that convays a style.

I also think this technology could be used to represent the way thinned down paint looks like when applied to canvas. A round brush can more or less scrape the center of the stroke if the pressure of the brush is too strong (1) or naturally if the paint is thinned down (2) while leaving somewhat thick deposits of paint in the borders of the stroke:

Saying like that it could even be a good alternative for watercolor brushes because the way it’s beeing handled under the hood in the brush engine right now id pretty similar but very resource intensive, but that is something to be seen in the future.

Why do I think this is an extension of the RGBA brushes and may be a problem if not implemented (I may be completely off base here): Offering other ways to interact with the alpha channel besides value but also hue, saturation etc just like the pen could prove very beneficial. And if @acc4 is reporting correctly and the mixing isn’t working very well that may be because the natural process is to be color picking mid tones betwen the colors to blend and if black is being contatly introduced to affect value all color mixing like this will tend to black:

Sleeping on it my three original suggestions I was tripping. now I think that it’s possibly more simple (for me as and end user at least) to put a new option to interect with either only the alpha channel or even all the 4 channels. [For example if the objective is to create thinned down paint effect it could be activated for the opacity, if to create un evenly mixed paint than the hue, saturation or value would come into play, etc.]

Here is a rough mock up (change options for settings for consistency):

I “undertand” - not as a coder - that it makes sense to put the options under the brush tip, but allowing these parameters to be linked or not, by choosing, to all or none of the already very structured brush propeties would make the users understand, deal and create new brushes much more easily.

The dream implementation would be to have all the paramenters be relational to the foreground color als long as that color is the one that krita opens with (white or alpha, no really sure), but when a backgroung color is picked it would treat each one of the colors as the diffent ends of the spectrum [maybe clipping the color space to the space between the two piced colors] to make intentional gradient making as the videos @Rigognos has posted that much easy - or probably not.

PS: I’m sory for being caried away by my own dreams and wishes for krita and possibly making the life of coders much more difficult. It’s just fun to dream about the possibilities.

2 Likes

If you objective is only to get that effect you could use a clone brush. It would acctually work very similarly even, in workflow, to the examples you presented.

If its just one task of whole the painting like painting the sky gradient the trouble to set it up woudln’t be that big, but to create a brush that looks like thin oils that could be repourposed and shared with other users that would be another story.

Haha, wow, a lot of information to unpack here :slight_smile: Not going to respond to everything, but I’ll use it all as reference as I work on these features. Thanks!

Currently I’m working on making the initial lightness option work in the smudge brush, and if I get that working, that may already achieve some of the effects you want. I’m hoping to have that ready in time to go into the next version.

After that, I think I’m going to implement a gradient map mode, where the brush tip value (in grayscale) maps to the currently selected gradient. Basically, the brushtip in grayscale is just a bunch of values between 0 and 1, and the gradient is just a mapping of color from 0 (left side of the gradient) to 1 (right side), so it’s pretty easy to see how it works. You could then make a tip that’s darker on the left, and gets lighter to the right, to paint in a gradient. Interestingly, you could actually re-implement the lightness mode and the original mask mode, just by creating the right gradients. There’s a lot of cool stuff you could do with it.

However, one thing that would be necessary to make that work well would be to increase the options for making custom gradients. Currently you can only make gradients with set colors. You can’t designate parts of the gradient to be the selected Foreground or Background colors. The current gradients that include those are hardcoded in.

Anyway, keep making related suggestions or refining the current ones here. I’ll keep checking here as I work on these things to see what makes sense to include in my efforts. Thanks!

2 Likes

Photoshop’s mixer brush can “sample” an area on the canvas and paint with that pattern. I’m not saying we should squarely copy this feature, but it’s indeed a way to paint multiple colors at the same time, and we should at least discuss its pros and cons.

Thanks for the input. What are the features of PS mixer brush that are not covered by the clone brush engine and the color smudge brush engine that you would like to see implemented in krita?

What I want is kinda like a clone brush that smudges colors, if that makes sense. But after re-reading the reply @Tim posted above I think he pretty much put it very thoroughly.

I’ve never used the mixer brush in PS but have tried to replicate its behaviour in Krita (not very successfully).

I see it used frequently and very effectively in artwork on artstation, so I would be happy to see something similar implemented.

If anyone has a Wacom art pen or similar digitizer with pen rotation detection, I’d like to see a demonstration of using this method to paint a flower like Donna Dewberry.
https://m.youtube.com/watch?v=XW57DQecAig

I have a Huion Q11k v2. It isn’t a wacom art pen but since it detects tilt it can offer the possibility of directional strokes.

So I dont have time to do a complete painting right now but it pretty much involves the process of setting up a gradient or swatch in another layer sample it with a clone brush and paining in a different layer.

I hope this example demonstrates the possibility:

It was done roughly for the changes in direction to be clear.

2 Likes

It looks like the clone brush is selecting from multiple areas of the gradient and not just one dab. This is a slightly different effect than I had in mind, but it could work for some effects, just not for painting flower petals exactly like Donna Dewberry. I’m sure there are ways around that though.

Just posting here in case people are following this but not the original thread it came from… I just submitted a merge request that includes the ability to use RGBA brushtips (like the DA_OilRGBA brushes) as gradient maps instead of lightness maps, so you can make brushes that can paint two or more colors at once. I also added support in the gradient editor to use foreground and background colors in custom gradients, so you can make gradients that adjust to your selected colors (other than the current built in Foreground to Background gradient). This should let you do everything you asked for above. When I get around to it, I’ll make some more brushes that show off this ability, but for now, here’s a simple gradient brush that’s good to show how it works:
GradientBrush2

You’ll have to build my branch voronwe/gradient4.3 to test it out, unless someone like @dkazakov wants to post a testable build here. I don’t seem to have the right scripts to build it at a reasonable size for sharing.

2 Likes

That is awesome!!!

Hi! Have you discuss something like “dirty mode” here? Watch video — https://youtu.be/SggZZmJ6hVw

1 Like

It has been discussed (see mixer brush discussion above) as well as in a thread on the smudge brush. I’ve started a longer term project of creating the mixer brush, because despite the fact that the smudge brush can do just about everything the mixer brush does, there are some things about how the current smudge engine works that I don’t like. Since I’m pretty sure my changes will affect existing brushes, I’m just making a new engine, and since I’m making a new engine, it’s going to be more closely modeled in UX to the mixer brush. I’ll also make sure to include the dirty brush option while I’m at it (both options of saving a color and saving a whole dab between strokes).

But like I said, it’s a longer term project, so hopefully sometime this year, but probably not in the next few months.

8 Likes

Hi, @Voronwe13!

Here is an AppImage for your patch:

5 Likes

I forgot to come back to this thread when it happened, but the gradient brush feature for the pixel engine has been merged, so the stable nightly builds have it if you want to try it out. I have a merge request in that adds it to the smudge engine as well, so hopefully that will be in the nightlies soon too!

4 Likes