This forum has been archived. All content is frozen. Please use KDE Discuss instead.

How to get the smooth&creamy brush strokes like photoshop

Tags: None
(comma "," separated)
User avatar
halla
KDE Developer
Posts
5092
Karma
20
OS
andreasresch wrote:
boudewijn wrote:You'd need someone who knows photoshop pretty well for that, and there is nobody on the Krita team who has used photoshop extensively, and most people haven't used it at all. We are, after all, not into making a photoshop clone.


Bummer ... this is a pretty discouraging standpoint. Sorry to hear that.


Well... You know about photoshop, so once you're done you should be able to write that tutorial :-)
User avatar
andreasresch
Registered Member
Posts
29
Karma
1
OS
boudewijn wrote:
andreasresch wrote:
boudewijn wrote:You'd need someone who knows photoshop pretty well for that, and there is nobody on the Krita team who has used photoshop extensively, and most people haven't used it at all. We are, after all, not into making a photoshop clone.


Bummer ... this is a pretty discouraging standpoint. Sorry to hear that.


Well... You know about photoshop, so once you're done you should be able to write that tutorial :-)


Unfortunately I have no clue what this comment is supposed to mean. Neither do I know what you expect me to be done with nor do I understand what tutorial you're talking about. If there's something I can do to help the cause, you need to be more specific and I'm willing to do help where I can. Otherwise I don't see the sense in comments like this one except for personal pleasure.
User avatar
halla
KDE Developer
Posts
5092
Karma
20
OS
I'm sorry, I did not want to be unclear. What I meant was this: you're currently working on recreating brushes you have made before in Photoshop in Krita. When doing that you will learn how that can be done, what cannot be done and what can be done. So you will build up the knowledge that I, and the others developing Krita, lack: we have not used Photoshop, we haven't created brush sets in Photoshop ourselves, we only know Krita. So if you've gained that knowledge, you would be the right person to write a tutorial.
User avatar
andreasresch
Registered Member
Posts
29
Karma
1
OS
boudewijn wrote:I'm sorry, I did not want to be unclear. What I meant was this: you're currently working on recreating brushes you have made before in Photoshop in Krita. When doing that you will learn how that can be done, what cannot be done and what can be done. So you will build up the knowledge that I, and the others developing Krita, lack: we have not used Photoshop, we haven't created brush sets in Photoshop ourselves, we only know Krita. So if you've gained that knowledge, you would be the right person to write a tutorial.


Well ... this thread and the one I started recently (viewtopic.php?f=139&t=152017) happenend, because we were NOT able to successfully recreate the brushes and the transition from Photoshop to Krita still is a bit tricky. These threads falls into the "wish list" category as the problem cannot be really labeled as a bug. A good place for that would be the forum here - that's what I assumed. The things that I considered real bugs, I have submitted to the bug list with screencasts of the issue. For neither the wishes nor the bugs a tutorial would make sense. Once all the things are resolved and I fell like it would be helpful to people to see how to convert brushes from Photoshop to Krita, the notion to create a tutorial might come naturally if time permits. But I don't think it makes sense at this point.
User avatar
tushantin
Registered Member
Posts
33
Karma
0
OS
I don't think it really matters "who" creates the tutorials. What matters is if somebody could actually help figure out how to replicate the creaminess effect of Photoshop in Krita. We essentially know what the effect looks like, so somebody who understands Krita's brush-engine could help deconstruct how to go about replicating that effect. Even if somebody can post right here how to go about doing that, I think anybody who can use that workaround can help create those brushes and tutorials.

Currently I'm in the middle of creating an illustration, and I really miss that feature from Photoshop myself. I don't know how to create that effect in Krita, and despite so many great brushes already available by default it sucks that I can't seem to get them to work well as I intend them to.
User avatar
scottpetrovic
Registered Member
Posts
520
Karma
4
OS
Usually when I have heard "creamy brush strokes", people are usually referring to some type of smudge brush effect where dabs are blending with each other. I am guessing that is why you don't see the stepping with the Photoshop examples. Photoshop is closed source, so there is no way we are going to be able to see what they are doing,

All we can do is guess what they are doing and try to add logic in if it doesn't exist in Krita. The closest I have been able to get with that with the default presets is the "i) Wet Paint" preset which uses the color smudge engine.

I have the spacing set to Auto and 0.07. Then I am using the smear_paint brush tip. It gives this result...

Image
User avatar
andreasresch
Registered Member
Posts
29
Karma
1
OS
scottpetrovic wrote:Usually when I have heard "creamy brush strokes", people are usually referring to some type of smudge brush effect where dabs are blending with each other. I am guessing that is why you don't see the stepping with the Photoshop examples. Photoshop is closed source, so there is no way we are going to be able to see what they are doing,

All we can do is guess what they are doing and try to add logic in if it doesn't exist in Krita. The closest I have been able to get with that with the default presets is the "i) Wet Paint" preset which uses the color smudge engine.

I have the spacing set to Auto and 0.07. Then I am using the smear_paint brush tip. It gives this result...

Image


Hello.

Of course Photoshop's source code cannot be accessed here. But other programs like Paintstorm Studio or Paint Tool Sai handle the flow characteristics just like Photoshop does. So I don't think there's some complicated algorithm behind this. It must have something to do with opcaity overriding the flow value somehow. But this has to be tested in a debugging environment.

Isn't the smear brush interacting with the background? Or can this be turned off?

Cheers,
Andreas
User avatar
scottpetrovic
Registered Member
Posts
520
Karma
4
OS
Currently, I think the smudge brush has to interact with the background layer now, but it probably doesn't have to

You didn't make any comment about my example being close to what you are trying to explain. I am going to assume it isn't close which makes going down this smudge brush effect useless. There seems to be some communication problems going on right now with what you are wanting and how it is being explained.
User avatar
TheraHedwig
KDE Developer
Posts
1794
Karma
10
OS
I actually did make a Krita: Abyss task:
https://phabricator.kde.org/T8576

However, the problem is that I have no idea how complicated this is to resolve as it would need changes in the way KisPaintDevice works with opacity, something which as far as I know, only Dmitry really understands. I've told Andreas several times that we cannot promise anything on this front, but they seem unsatisfied and keep replying that I need to think of the users, as if this is an alien concept to me. Thinking of the users does not automatically make me understand the opacity code in KisPaintDevice and able to create a solution. It doesn't even automatically make all my real life responsibilities I have dissapear. Nor does it make the bugs that have more priority magically fix themselves.
User avatar
andreasresch
Registered Member
Posts
29
Karma
1
OS
scottpetrovic wrote:Currently, I think the smudge brush has to interact with the background layer now, but it probably doesn't have to

You didn't make any comment about my example being close to what you are trying to explain. I am going to assume it isn't close which makes going down this smudge brush effect useless. There seems to be some communication problems going on right now with what you are wanting and how it is being explained.


I didn't comment on your specific brush, because it's hard to judge the result from an image on the screen and from one single brush stroke. But I tried the Wet Paint Brush and I tried to recreate one of PS brushes with the Smudge Engine, but the strokes seemed to always interact with the background. Even if I unchecked as much settings as I could in the brush editor. That's why I asked, if the Smudge Engine always interacts with the background and if it can be turned off. But thanks for suggesting the alternative.

Here's another image that might be helpful to get to the bottom of the issue.

Image

Full resolution here ... http://www.andreasresch.at/upload/images/Brushtest_02.jpg

It's a black brush on a white background. Any pen pressure settings are off. The stroke is spaced to overlap occasionally. At the bottom is a single brush tip. The leftmost stroke has an Opacity value of 50% and a Flow value of 100%. The middle on is the other way around, Flow at 50% and Opacity at 100%. The rightmost stroke has a value of 50% for both Opacity and Flow.

Here's an interesting difference. When Flow is set to 50% and Opacity is a 100% there's a tonal difference in the overlapping strokes.

Overlapping once -> Photoshop (25% brightness), Krita (38% brightness)
Overlapping twice -> Photoshop (12% brightness), Krita (28% brighness)

The result of Photoshop seems linear (50% * 50% * 50%). Krita has lighter values and maybe follows some logarithmic algorithm. It like to know what the background is here. Maybe that's a good point to start.

Cheers,
Andreas
User avatar
andreasresch
Registered Member
Posts
29
Karma
1
OS
TheraHedwig wrote:I actually did make a Krita: Abyss task:
https://phabricator.kde.org/T8576

However, the problem is that I have no idea how complicated this is to resolve as it would need changes in the way KisPaintDevice works with opacity, something which as far as I know, only Dmitry really understands. I've told Andreas several times that we cannot promise anything on this front, but they seem unsatisfied and keep replying that I need to think of the users, as if this is an alien concept to me. Thinking of the users does not automatically make me understand the opacity code in KisPaintDevice and able to create a solution. It doesn't even automatically make all my real life responsibilities I have dissapear. Nor does it make the bugs that have more priority magically fix themselves.


Hello,
so often when a shacky communication climate seemed to have smoothed itself out, things are stirred up again. This is not necessary. I dislike if a wrong image of my character and communication history is created just to absorp anger. All my comments are out there and everybody can go and check if I ever became personal or offensive, which I did not. Yet here I find myself personally confronted without a reason. This is not good.

This all is about making Krita a better program. And when we spend time to test things, make comparisons, present our results and upload examples, we are painted as being selfish and a harsh comment seems much closer than a "Thank you".

Yes I'm unhappy that this issue will take longer than I expected, but I don't blame anybody for that. It just means, that I will have to wait a while longer until I can think about using Krita for my daily work.

Cheers,
Andreas
Steven
Registered Member
Posts
31
Karma
0
Hello,

As we talked in another topic, I also think the way Krita manage the flow setting is "wrong", because when you change it you get messy result at low opacity instead of smoother ones (the way dabs are blending with each other, and above all the way the opacity build up quickly to black).

After a few tests, I figured the settings for the same type of result are :
(with pen pressure deactivated)

Photoshop -> x% Opacity and y% Flow
Krita -> x% Opacity and (x% * y%) Flow

Example :
Photoshop : 50 % opacity and 40% Flow
Krita : 50% opacity and (50% x 40% = 20% Flow)

=> That means in Photoshop the Flow setting already takes Opacity setting into account, while in Krita it is completely separated...
Krita seems illogical to me about this, because a dab can never be darker than the max opacity anyway, so right now for example with 20% opacity it doesn't matter whether you put 80% flow or 50%...)
Do you see what I'm getting at ? In other programs Flow isn't the "absolute Opacity of each dab" as you thought, but the opacity for each dab in comparison with current opacity ! In other words, it's a PERCENTAGE OF CURRENT Opacity, and not a "pure" percentage of opacity.

=> To get better control over Flow and "smooth and creamy brush strokes" in Krita, the Flow setting should be automatically multiplied by current opacity at all times.
Now it is mathematically logical and I'm 100% that it is the solution we've been looking for !
It would be a big improvement for those of us who like to work a lot with Flow setting but can't really do that in Krita right now... I really hope devs will take this post into account, because it's currently an issue for a lot of us and by solving it I really think Krita would without question become the best painting program out there !
User avatar
halla
KDE Developer
Posts
5092
Karma
20
OS
"Do you see what I'm getting at?"

No, but maybe if you'd make a patch we could experiment with it.
Steven
Registered Member
Posts
31
Karma
0
I have absolutely no idea how to "make a patch" so I explained it the best I can so the Krita team could try it... ^^'

It's pretty simple actually : long story short, at every tick you should take the CURRENT opacity value (I insist on "current" because it may change every time according to pen pressure etc...) and you multiply the current flow value with it.

=> "realistic" Flow value (the one you should use) = current Flow value * current Opacity value

That's all, it's just a simple multiplication made at every tick for a more realistic result ;-)
williambrown
Registered Member
Posts
3
Karma
0
Hi folks! I've also noticed that flow is hard to control. This thread seems a bit old, but it seems like the most relevant, and I want to chime in.

I think people are right, the problem is that the flow isn't limited by opacity. But, an odd thing I've noticed is that it is limited by the opacity slider, just not the per-pixel opacity of the stroke.

I'm gonna use the term static opacity for the opacity set using the opacity slider, and dynamic-opacity for the per-pixel opacity of the stroke (since it can change from pixel to pixel depending on pen pressure).

You would expect that the dynamic opacity acts the same as the static opacity, just with per-pixel granularity, but this pic shows that they don't act the same.

Image

All those strokes should have 50% opacity everywhere, the top ones by setting the static opacity to 50%, and the bottom ones by changing the pressure curve so dynamic opacity is always 50%. When flow is 100%, they're the same, but otherwise the two strokes are blended with the image differently.

The way it should work is (if you think of the stroke as a temporary layer) the flow is used to blend dabs within the stroke, and the opacity acts like a transparency mask over the stoke. Krita is instead using the static opacity like a transparency mask, and using the dynamic opacity and flow together to blend dabs into the stroke, I think.

The good news is, I've also got a workaround. In Krita v4+ you can use masked brushes to create the opacity mask yourself

1) start with a brush that has opacity pressure off and flow pressure on
2) enable the masked brush tip by checking the box
Image
3) setup the brush tip to be the same as your main brush tip
4) disable the masked brush's flow pressure
5) enable the masked brush's opacity pressure

voila! you've got creamy flow + opacity brush strokes like OP wanted :)

Image

It's a little annoying to have to re-create your brush tip, but it works

I hope somebody finds this useful


Bookmarks



Who is online

Registered users: Bing [Bot], daret, Google [Bot], Sogou [Bot]