Smudge brushes improvements
Open, WishlistPublic

Description

Some (many) thoughts how to make krita better for more traditional, paintery work. According to this Smudge brush engine needs to be changed pretty heavily but I think it worth more than enough.
After a bit of messing with Photoshop, Paintstorm studio (try it!) and Art Rage I came with bunch of ideas:

  1. “Canvas sampling”. Idea from PS’s mixer brush engine, it “pick” part of image instead of just color. I described something similar in this theme but now I have some changes in mind (compared to theme). My idea is to make it not another brush engine but some kind of extension for brush tip settings. That way it’ll work with different brush engines (I think pixel and smudge will be enough). It might create neat traditional results like this.

How it supposed to work. With enabled “Canvas sampling” at the moment of pick color krita copy part of canvas (rectangle of 100% brush size). In painting it use brush tip as mask and paint with masked sample (check video in forum theme). That way it will works fine with animated tips and textured brushes.
One more thing, it should sample all layers if user press hotkey "Pick color from merged image" and sample only from current layer if pressed "Pick color from current layer".
Some options. I think it should have “rotate sample” option. Photoshop doesn’t rotate sample image with brush, I think it’s better to make it configurable: either rotate tip and then mask sample or mask sample and then rotate it. And also pick rotated sample with this option enabled (useful for flat brushes with pen tilt rotation).
It always should scale sample then brush size changes, but it’s probably useful to disable dynamic scaling for brushes with size dynamics (like pen pressure).
Also would be cool to have some sample preview and HSV sliders in related setting.
This is quite powerful thing, and many good artist like it (Craig Mullins too), and it shouldn’t be hard to implement it for pixel brush engine. Bristle engine support it too. Smudge engine don’t work with colored brush tips so it’ll need more work but I’ll be reworked anyway (?).

  1. Add option “limited by opacity” to flow settings. Right now if flow isn’t 1.0 stroke transparency can go to maximum opacity no matter of what curve it uses. Even if curve is set to horizontal line at 50% but opacity setting is 1.0 it easily reach 1.0. Maybe also remove “Painting mode” (build up or wash) because flow doings almost same effect.
  2. Huge changes to smudge brush engine. First, add flow, same flow as flow in pixel brush engine. It’ll need flow option for correct work other features. Make it possible to use Smearing and Dulling smudge mode. Replace Smudge Length setting with “Color Blending” (dulling) and “Smearing” (or another name). Separate Color Rate from Smudge Length so I can paint thick even with 0 Smudge Length (or Color Blending\Smearing). Make Color Rate use Canvas sample then it enabled.

So new Smudge brush formula is:

((Smearing sample*opacity(from smearing setting) + Blended Color*opacity(from Color Blending setting) + Color rate color (or sample)*opacity) * main flow and opacity picture

Blended color applying on top of Smearing sample and Color rate applying on top of them. All opacity is getting from settings (with curves).
That way all settings independent of each other (except main opacity\flow). Paintstorm studio works this way (or very similar). It’s very flexible and allow to use same brush for smooth blending and for rough smearing depends on pen pressure. Or to paint thick with just a bit of blending.
I think Smearing setting should have “dynamic sampling” option. With dynamic sampling it’ll work like now, picking sample for each tip and use it. Without dynamic sampling it’ll only pick sample at start of the stroke and use it until end (kinda similar to Canvas sampling). Problem with current implementation is it produces weird results then texture or animated tip enabled (and further stacked brushes). Another picture. Another problem is build up of color rate, each new sample include a bit of new color so with time it grows to 100%. Sometimes it useful to keep same color for whole stroke.
Color Blending options. First is same “dynamic sampling” as descripted above. Build up problem is actual here too. Second is “brush separation”: instead of using same Blended Color for whole tip it separates to few parts with its own Blended Color (see pic). Picture also shows the problem that “separation” option solve – more smooth blending for flat brushes and just better control over edges. Areas will overlap each other when Smudge radius enabled but I guess it’s should work that way. Honestly I don’t know what Smudge radius for it’s just produces weird results…

  1. Textures ideas (because why not). Textures is pretty good as it is but it lack of some functionality, Photoshop-like Brightness and Contrast would be very great. Also it would be great to have some kind of texture autoscale, depending on brush size. And proper random offset.

I have an idea how to make it even better: “upgrade” Texture Strength so it can go over 1.0 value (to 2.0). The point is if value is more than 1.0 it starts to darken texture, 2.0 will work like pure black texture (picture). It will greatly benefit from curve system. One more picture.

<After this point I have less thought-out ideas>

  1. “Artificial bristleness” – turn any brush tip into bristle brush tip. With changeable amount, size and random offset of bristles. Similar to Randomness and Density but work with both predefined and auto brush tip. Some way to shuffle bristles positions. Possible “blending for bristle” for Color Blending and “Smear bristle” for Smearing.
  2. Strokes post processing. Some mechanism to apply some effect on whole stroke before it’ll be applied to canvas. Alternative way to create volume strokes and also allow to create various other effects (like PS’s wet edge).
  3. Brush tip effects. Some mechanism to apply some effect on brush tip before it’ll be applied to stroke. For example add shadows to create more volume strokes.
  4. Strokes post processing next gen. Repaint whole stroke with defined parameters, allow to simulate things that very hard or impossible to reproduce with stylus (or even without it). It’s hard to describe but Paintstorm studio have this function, check the program or video overview (0:20).

If this is gonna happened krita will need a couple of “Mixer brush” presets with Canvas sampling, new Smudge presets and some kind of “old smudge to new smudge” translator. All existing Smudge presets should be possible to recreate with new engine, but some new aren’t possible to recreate on old engine.
That’s it, a big wall of text. All idea sorted from most useful to least. It’s a lot of work (smudge engine especially) but it separated to few tasks mostly independent of each other. And most of the tasks very useful alone.

radianart created this task.May 2 2017, 9:21 AM
radianart updated the task description. (Show Details)May 2 2017, 9:34 AM
radianart updated the task description. (Show Details)May 2 2017, 9:37 AM
radianart updated the task description. (Show Details)May 2 2017, 9:45 AM