Bug 421314

Summary: [stabilizer] "Scalable distance": doesn't work as advertised
Product: [Applications] krita Reporter: David REVOY <info>
Component: UsabilityAssignee: Dmitry Kazakov <dimula73>
Status: RESOLVED FIXED    
Severity: normal CC: halla
Priority: NOR    
Version: 4.3.0-beta1   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description David REVOY 2020-05-11 05:36:22 UTC
Hi,

The option "Scalable distance [ ]" in tool options of the Freehand Brush tool confused me a lot over the past days as I tried to use again stabilizer after two years being away and using "none" for all. 

The documentation and infobox tells this:

- Documentation: "This makes it so that the numbers involved will be scaled along the zoom level." (src: https://docs.krita.org/en/reference_manual/tools/freehand_brush.html) 

- Infobox (when mouse over the checkbox): "Scalable distance takes zoom level into account and make the distance visually constant whatever zoom level is choosen."

If you test with a dramatic distance to be sure to notice the effect (140px here is enough), check "Scalable Distance"; you'll end with a very very slow brush at 12% zoom, a slow at 25% and faster at 50% then 'quicker' at 100%. So, not really "Visually constant" as promised. The gesture is not constant either and visually the resulting stroke is not constant too being overly weighted at lower zoom size. To get a constant behavior whatever the zoom size (I guess 99% of what drawer/painter expects) the good option is to uncheck it. Could be maybe the wording about this option improved or just maybe more hints in the infobox and documentation?

(Note: This is not a regression.)
Comment 1 Halla Rempt 2020-05-14 08:05:37 UTC
I think we're going to have to discuss this at the next meeting. I've added a note to https://docs.google.com/document/d/18LYxzHO-KpThsJJ65nb8A1kltkjpQKMStyZ4W-gv_WA/edit# -- the meeting document for next week
Comment 2 Halla Rempt 2020-05-18 14:06:55 UTC
This was the commit that created the feature:

commit dedcbc777d3fbea570e95fbcefbff2f37957afc0
Author: Dmitry Kazakov <dimula73@gmail.com>
Date:   Fri Jun 6 16:16:39 2014 +0400
 
    [FEATURE] Added a Scalable Distance option to Weighted Smoothing
   
    Now if you activate "Scalable Distance" option for a brush tool,
    the distance will be corrected to your current zoom level. It means
    that your stylus will be "stabilized" the same way at any zoom level
    you choose.
   
    BUG:335834
    CCMAIL:kimageshop@kde.org
Comment 3 Dmitry Kazakov 2020-05-20 12:19:22 UTC
Git commit 46641c91ee3713368e6877441367324e9bc4fd31 by Dmitry Kazakov.
Committed on 20/05/2020 at 12:01.
Pushed by dkazakov into branch 'master'.

Make "Scalable Distance" always on for the Stabilizer

And also hide the option from the GUI.

M  +5    -1    libs/ui/tool/kis_smoothing_options.cpp
M  +3    -1    plugins/tools/basictools/kis_tool_brush.cc

https://invent.kde.org/graphics/krita/commit/46641c91ee3713368e6877441367324e9bc4fd31
Comment 4 Dmitry Kazakov 2020-05-20 12:19:22 UTC
Git commit fc8c150ae70ad4c2e3c092b28e0f22a3fe1cd34c by Dmitry Kazakov.
Committed on 20/05/2020 at 12:02.
Pushed by dkazakov into branch 'master'.

Change "Distance" to "Sample count" for stabilizer

Stabilizer doesn't have any distance in its algorithm. It uses samples
instead.

M  +31   -5    plugins/tools/basictools/kis_tool_brush.cc
M  +3    -1    plugins/tools/basictools/kis_tool_brush.h

https://invent.kde.org/graphics/krita/commit/fc8c150ae70ad4c2e3c092b28e0f22a3fe1cd34c
Comment 5 Dmitry Kazakov 2020-05-20 12:35:48 UTC
The bug is fixed in 

https://invent.kde.org/graphics/krita/-/commit/d59971da7ab52af8c23ebcfd3c62500d971bee07

The patch will be backported to 4.3
Comment 6 Dmitry Kazakov 2020-05-20 13:13:18 UTC
Git commit c16cf7cd9f0edd06c1dcb9d12afae3b6c19b0a22 by Dmitry Kazakov.
Committed on 20/05/2020 at 12:30.
Pushed by dkazakov into branch 'krita/4.3'.

Make "Scalable Distance" always on for the Stabilizer

And also hide the option from the GUI.

M  +5    -1    libs/ui/tool/kis_smoothing_options.cpp
M  +3    -1    plugins/tools/basictools/kis_tool_brush.cc

https://invent.kde.org/graphics/krita/commit/c16cf7cd9f0edd06c1dcb9d12afae3b6c19b0a22