Bug 281267 - Smooth Stroke option missing
Summary: Smooth Stroke option missing
Alias: None
Product: krita
Classification: Applications
Component: General (show other bugs)
Version: git master (please specify the git hash!)
Platform: Unlisted Binaries Linux
: NOR wishlist
Target Milestone: ---
Assignee: Halla Rempt
Depends on:
Reported: 2011-09-03 12:54 UTC by animtim
Modified: 2012-12-31 16:30 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Note You need to log in before you can comment on or make changes to this bug.
Description animtim 2011-09-03 12:54:09 UTC
Version:           svn trunk
OS:                Linux

Particularly for clean ink work, we need a real "smooth stroke" option, like the one in Gimp-painter G-Pen tool ("Quality" and "Rate" options).
The exact details of how it works in Gimp-painter is described here:
Use google translate as I guess you don't read japanese…
Seriously that feature need to be in Krita (I'd say it's the best smoothing stroke algorythm I've seen, and it's open source, so we need it ;) )

There's another smoothing in mypaint, I'm not sure if it works exactly the same (maybe?!), that makes some delay in the stroke and so smooth it. (that's "slow tracking position" and "slow tracking per dab" options)
It's comparable to the option in xsetwacom called Suppress, only difference is xsetwacom's Suppress slow-down directly the cursor, and so the stroke, while the Mypaint options slow down only the stroke result.
So for now I tweak xsetwacom Suppress value in bash to activate a cheap stroke smoothing, but that's not very good solution (not as good result, can't embed it in a preset, and switching to terminal window isn't a fast workflow :P )

Reproducible: Always

Expected Results:  
Clean smoothed lines
Comment 1 Ico_dY 2011-11-04 14:51:56 UTC
"Slow tracking position" slows down the pointer tracking speed and removes the jitter in cursor movements. 

This option is VERY VERY VERY important for the styles based on line-art and generally for painting on very big canvases. Without it the brushes lack of necessary precision for a comfortable work.
Comment 2 Halla Rempt 2012-01-21 10:43:39 UTC
I'd say this should be one of the main goals for 2.5.
Comment 3 LukasT 2012-01-24 18:44:07 UTC
I'd say this should be one of the main goals for 2.5.
I'd say so too.
Comment 4 RamonMiranda 2012-05-14 14:48:21 UTC
As the main goal of Krita is to be aimed to comic makers and painters i think it would be a very good one. There are an App called AZdrawing wich uses too this feature. there is controlled by only a number who tells the program how much stabilization needs to be aplied. In this field Gimp 2,8 is able to do it too, becasue the G-pen feature was implemented. but gimp dont have rotation in canvas for now. and mypaint does slow tracking also but you cant use it in complex images that requires transformed layers. and comic pages  and ink works usually needs this type of work.
Comment 5 Halla Rempt 2012-12-31 13:54:47 UTC
See https://git.reviewboard.kde.org/r/108049/
Comment 6 Halla Rempt 2012-12-31 16:30:27 UTC
Git commit f9cbf6a1bd864be88059255aa9c4b5b35208085d by Boudewijn Rempt.
Committed on 31/12/2012 at 17:04.
Pushed by rempt into branch 'master'.

Implement line smoothing in Krita


M  +1    -1    krita/image/brushengine/kis_paint_information.h
M  +17   -3    krita/image/kis_distance_information.h
M  +5    -3    krita/plugins/paintops/libpaintop/sensors/kis_dynamic_sensors.cc
M  +54   -18   krita/plugins/tools/defaulttools/kis_tool_brush.cc
M  +8    -3    krita/plugins/tools/defaulttools/kis_tool_brush.h
M  +1    -0    krita/ui/CMakeLists.txt
C  +8    -17   krita/ui/tool/kis_smoothing_options.cpp [from: krita/image/kis_distance_information.h - 057% similarity]
C  +20   -14   krita/ui/tool/kis_smoothing_options.h [from: krita/image/kis_distance_information.h - 057% similarity]
M  +1    -8    krita/ui/tool/kis_tool_freehand.cc
M  +3    -3    krita/ui/tool/kis_tool_freehand.h
M  +111  -31   krita/ui/tool/kis_tool_freehand_helper.cpp
M  +7    -3    krita/ui/tool/kis_tool_freehand_helper.h