https://bugs.kde.org/show_bug.cgi?id=521579

            Bug ID: 521579
           Summary: Stabilizer speed adjustment does not work
    Classification: Applications
           Product: krita
      Version First 5.3.0
       Reported In:
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: Tools/Freehand
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

DESCRIPTION
The stabilizer sample count is only set once at the start of the stroke,
meaning that the "sample count at min/max speed" settings have basically no
effect. To behave sensibly, they would need to update during the stroke.

STEPS TO REPRODUCE
1. In the freehand tool, set the brush smoothing option to Stabilizer.
2. Set the sample count sliders to different values.
3. Draw a stroke at varying speed.

OBSERVED RESULT
The smoothness is based on the brush speed at the start of the stroke, which in
practice just gets you the sample count at the minimum speed.

EXPECTED RESULT
The smoothness changes based on speed as the stroke progresses.

ADDITIONAL INFORMATION
The problem occurs and needs to be fixed in kis_tool_freehand_helper.cpp.
KisToolFreehandHelper::stabilizerStart sets the sample count exactly once
according to the first paint info and then never again. To work properly, it
would instead need to set the sample count to the maximum value and then
discard samples along the way.

Drawpile uses the same stabilization algorithm and I've fixed it there, see in
particular brush_engine.c, the changes in lines 1045 onwards:

*
https://codeberg.org/Drawpile/Drawpile/commit/2c19a9a01bfd68478e6e507e70e70f11a6dac9fb
*
https://github.com/drawpile/Drawpile/commit/2c19a9a01bfd68478e6e507e70e70f11a6dac9fb

Unfortunately, I found that the linear interpolation between a minimum and
maximum value like it is currently set up in Krita really doesn't work for the
stabilizer, it needs a curve to make it feel anywhere remotely sensible and
give the user any semblance of control. That means fixing this probably also
needs a good chunk of UI rework to make it work properly.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to