Bug 388237 - Add "Ignore Alpha" to Smudge Brush or "preserve existing alpha"
Summary: Add "Ignore Alpha" to Smudge Brush or "preserve existing alpha"
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Brush engines (show other bugs)
Version: 4.0 pre-alpha
Platform: Other Microsoft Windows
: NOR wishlist
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-12-26 06:32 UTC by reptillia39
Modified: 2020-04-23 09:59 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description reptillia39 2017-12-26 06:32:57 UTC
Something I noticed when it comes to testing Krita painting capability is that alpha do get smudged over color. For artists that would like to avoid this, I would suggest a way to somehow limit the effect of smudging alpha as sort of a option or somehow to preserve alpha of already painted information. 

In real life, think of two painted areas with noticeable mass, and you blend in the two, it behaves differently than in Krita. I don't know how to explain this, but I believe this will significantly make Krita more viable for painting as the main goal. There should be someway to limit alpha smudging.
Comment 1 reptillia39 2017-12-26 06:45:02 UTC
Also, I forgot to add, I noticed that smudging does not build up alpha value as much as what would be seen on traditional media. A option to increase alpha build-up would be greatly appreciated by those who wants more traditional media approach.
Comment 2 Storm Engineer 2017-12-26 17:52:26 UTC
I agree. It gets really annoying when I paint around edges and the empty part of the layer is smudged into parts with actual content, causing a mess of transparency.

This also isn't consistent with how it behaves if you paint over edges created by neighboring colors rather than color neighboring empty area.

While I see this behavior may be desirable in special cases, I believe it's not the normal use case, and so it should be either eliminated or made optional.
Comment 3 reptillia39 2017-12-26 21:52:34 UTC
I would suggest made optional because there are Krita users who are ok with the current behavior. More flexibility, the better.
Comment 4 Storm Engineer 2017-12-27 10:18:53 UTC
I totally agree.
Comment 5 wolthera 2017-12-27 13:32:26 UTC
wy not toggle the "preserve alpha" between the eraser and the reload buttons in the tool bar when you need to do this thing?
Comment 6 Storm Engineer 2017-12-27 18:25:02 UTC
(In reply to wolthera from comment #5)
> wy not toggle the "preserve alpha" between the eraser and the reload buttons
> in the tool bar when you need to do this thing?

That's not the same, as that stops you from painting over alpha entirely. The idea would be (in my interpretation at least) that you can paint over alpha to increase opacity, but not decrease it.

Makes sense that the brush shouldn't "remove paint" from where there already is some. Right now it treats opacity as the same as color and mixes it, it should only mix the color.
Comment 7 reptillia39 2017-12-27 18:41:45 UTC
(In reply to Storm Engineer from comment #6)
> Makes sense that the brush shouldn't "remove paint" from where there already
> is some. Right now it treats opacity as the same as color and mixes it, it
> should only mix the color.

I don't think the smudge engine should be rewritten to support this task (There's a lot of people where smudging alpha information is actually beneficial for them), but it would be nice to add an additional option where instead of keeping alpha information intact, it should increase opacity, and emulate actual real-world material.
Comment 8 Dmitry Kazakov 2020-04-23 09:57:09 UTC
Git commit 8c224215e9b9fdc3d0cc3cf45c044d1b0863be67 by Dmitry Kazakov.
Committed on 23/04/2020 at 09:56.
Pushed by dkazakov into branch 'krita/4.3'.

Add an option do disable smearing of alpha channel in Colorsmudge Paintop

M  +1    -1    plugins/paintops/colorsmudge/kis_colorsmudgeop.cpp
M  +12   -0    plugins/paintops/colorsmudge/kis_smudge_option.cpp
M  +4    -0    plugins/paintops/colorsmudge/kis_smudge_option.h
M  +18   -4    plugins/paintops/colorsmudge/kis_smudge_option_widget.cpp
M  +3    -0    plugins/paintops/colorsmudge/kis_smudge_option_widget.h

https://invent.kde.org/kde/krita/commit/8c224215e9b9fdc3d0cc3cf45c044d1b0863be67
Comment 9 Dmitry Kazakov 2020-04-23 09:59:06 UTC
Git commit 2382b7cc77478e1765b3dfac6c894731f444ee60 by Dmitry Kazakov.
Committed on 23/04/2020 at 09:58.
Pushed by dkazakov into branch 'master'.

Add an option do disable smearing of alpha channel in Colorsmudge Paintop

M  +1    -1    plugins/paintops/colorsmudge/kis_colorsmudgeop.cpp
M  +12   -0    plugins/paintops/colorsmudge/kis_smudge_option.cpp
M  +4    -0    plugins/paintops/colorsmudge/kis_smudge_option.h
M  +18   -4    plugins/paintops/colorsmudge/kis_smudge_option_widget.cpp
M  +3    -0    plugins/paintops/colorsmudge/kis_smudge_option_widget.h

https://invent.kde.org/kde/krita/commit/2382b7cc77478e1765b3dfac6c894731f444ee60