An ardent plea - give the color smudge brush engine the ability to paint with a sampled area

i’ve been using krita for two and a half years now, coming from photoshop, and i absolutely love it. it blows my mind just how solid of an art program it is, and how it only continues to get better. overall, krita has proven to be significantly more of a powerhouse for my usage scenario, than photoshop ever was. except for this one missing feature…

as an artist who specialises in creating digital artwork which attempts to mirror real life oil painting as closely as possible, there is one feature which i am desperately hoping will get added to krita, as it would then be the perfect art program- for me and other artists of a similar approach.
(of course, accounting for the immutable prerequisites of being FOSS natively compatible with linux; i’m aware there’s digital artwork software aimed specifically at this niche, but that is windows only, and not FOSS, and, well, not krita!)
-

to essentialise the feature i am requesting: port over to the color smudge brush engine the feature from the clone brush engine to ctrl+click to sample an area of the canvas instead of a single solid color.

target outcome: create artwork which emulates the look of organic color variations in thick traditional paint strokes, such as the result of loading a brush with colors from a mixing palette.

current workflow: using two brushes- one with the clone brush engine, and one with the color smudge brush engine- in order to attempt to replicate the desired effect. the process does not feel natural nor is it viable for achieving results which truly look like the real deal. using the color smudge brush with an RGBA brush tip with the lightness map brush mode is quite excellent, however it is limited to applying its organic effect to solid colors only. using the clone brush with a brush tip and pattern aimed at softening its eges is effective only for covering solid areas, however it is limited in its usage as a real media brush due to the fact that it does not blend anything at all.

desired workflow: using one brush- which functions exactly like the color smudge engine does currently, except it also allows usage of the area sampling via the ctrl+click feature which is part of the clone brush engine.

feature example: in photoshop, the mixer brush has an option to toggle between sampling solid colors only, or an area from the canvas. this offers a “creamy” result in one stroke, which also preserves the color variation from the sampled area.

visual demonstration: the artwork below is one i made in photoshop before i switched over to krita. i circled in blue some areas where the above example is apparent. i circled in teal my attempts in krita to replicate it as per the current workflow described- not only was the result much more muddled and ineffective, it also required an artificial repetition of brush strokes- whereas in the original artwork, the circled areas were rendered with singular brush strokes.

i’ve no idea how complicated this would be to implement, but i am hoping it is doable, and i am hoping there is a developer out there who is interested in adding this functionality.

needless to say, i would be eternally thankful, as it would add the last missing piece to making krita the uncontested perfect digital art program for my usage scenario- and, doubtlessly, other digital artists who have a similar approach to mine.

regardless, i am very grateful for all of the hard work of the developers which have built and are building krita into such an amazing digital art software. :slight_smile:

Am I understanding correctly that you “just” want to be able to offset the location where the color smudge brush is sampling from? Your description says you want it to be able to sample “not just a solid color”, but it can already do that, here’s a picture of it smudging a bunch of colors simultaneously, so the only thing that seems to be missing would be the ability to disconnect the location it picks up its colors from with the location it puts them down at.

If I understand you correctly: the only thing you want to change is the origin of the smudge brush.

There is already a smudge radius option for the smudge engine. It should be possible to move the center of that radius to your intended position. :thinking:

my bad, i think i did not express myself correctly, perhaps i used the word “sample” with the wrong meaning- i have to admit i don’t 100% fully understand the terminology.

what i meant is that instead of painting with just the one color which is chosen with the color picker, to instead be able to paint with an “area” of the canvas- which is what the clone brush engine does when you ctrl+click an area to select a source point.

You can use the Clone Brush for this, you only need to disable one setting and it will always paint using the sampled area:


Disable Source Point Move and you have what you want.

Michelist

as described in my original post, i am already using this- however, because the clone brush engine does not have the same sort of smudging algorithm available as the dedicated color smudge brush, it does not achieve the organic effect i’d like, towards the end goal of emulating real media.

the feature i am describing is to essentially “port over” this behaviour/option from the clone brush engine into the color smudge brush engine- in so doing, achieving the sort of organic real media emulation i am after.

That doesn’t answer my question unfortunately. I’ll elaborate.

I haven’t actually looked at how the color smudge engine works exactly, but this is how other engines do smudging, so it’ll be close enough. A smudge brush works by alternately sampling from and painting onto the canvas.

The sampling step involves waiting for previous painting to finish, then picking up color from the canvas and mixing it with the current color in the brush by some factor. The sampling may either use a single color for the entire brush or different colors across the area of the brush, depending on if you set its mode to “dull” or “smear”.

The painting step involves putting down the brush, which involves increasing and decreasing the opacity of pixels and blending their colors. It’s basically a mixture of erasing and blending.

So, your “not just one color” thing is something the engine already supports. Set it to smear instead of dull.

And the only thing you seem to actually want is for the sampling to happen from a different place than the painting happens.

This topic pop-ups time to time. You can read the previous discussion here and there.

It would be wonderful if Krita will got area color sampler from Paintstorm and Photoshop.

thank you for taking the time to explain this.

to try to clarify within this new context- it is the painting behaviour which the feature i am request would alter, not the sampling behaviour.

right now, the color smudge brush engine is only able to paint with a solid color which it mixes onto the canvas.
what i’d like is for the color smudge brush engine to be able to paint onto the canvas with pixels sourced from a static (different) area of the canvas, which is chosen by ctrl+click- just like the clone brush engine functions currently; however, while also retaining the sampling and mixing you described as being part of the color smudge brush.

thank you for the links. it’s good to know there are other people who would find this feature useful. hopefully having more voices asking for the same thing can signal the interest of the community to the developers- that it is worth it to invest the time in it. i really think that adding this feature will make krita even more appealing to more types of artists.

Okay, I guess that effectively means you only want the first sample to be from the offset location and all subsequent ones being sampled without an offset.

i think so?
the first option described in this reply by dkazakov to one of the threads linked above might be explaining it better than i can- indeed that topic is essentially asking for the same functionality which i have asked for here.

@Michelist
Just tried it. it’s not the same.
@kagisnad
I attached a screenshot to present the difference.