Bug 461309 - Fuzzy Dab ignores curves calculation mode, appears to just use multiply.
Summary: Fuzzy Dab ignores curves calculation mode, appears to just use multiply.
Status: RESOLVED INTENTIONAL
Alias: None
Product: krita
Classification: Applications
Component: Brush engines (show other bugs)
Version: 5.0.2
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords: triaged
Depends on:
Blocks:
 
Reported: 2022-11-02 08:00 UTC by Brendan
Modified: 2023-07-21 16:08 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Brendan 2022-11-02 08:00:54 UTC
SUMMARY

STEPS TO REPRODUCE
1. Select Basic-5 Size brush
2. Enable Fuzzy Dab on Size
3. Change curves calculation mode to Maximum
4. Draw a line with the mouse (which always registers as 100% pressure)

OBSERVED RESULT

Brush size changes randomly per dab

EXPECTED RESULT

Every dab should be at 100% size.

SOFTWARE/OS VERSIONS

Krita

 Version: 5.0.2
 Languages: en_US, en
 Hidpi: true

Qt

  Version (compiled): 5.12.12
  Version (loaded): 5.12.12

OS Information

  Build ABI: x86_64-little_endian-lp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: linux
  Kernel Version: 5.8.0-50-generic
  Pretty Productname: Ubuntu 20.04.2 LTS
  Product Type: ubuntu
  Product Version: 20.04
  Desktop: LXDE
Comment 1 wolthera 2023-01-12 13:23:22 UTC
Hi, thank you for your report.

I can confirm with the Krita Version: 5.2.0-prealpha (git 5c98a72) Appimage with Qt 5.15.7
Comment 2 Tiar 2023-03-10 21:14:10 UTC
I would be careful about fixing this bug, because judging from the code in here:
"KisCurveOption::ValueComponents KisCurveOption::computeValueComponents(const KisPaintInformation& info) const" (kis_curve_option.cpp, line 389)
https://invent.kde.org/graphics/krita/-/blob/master/plugins/paintops/libpaintop/kis_curve_option.cpp#L389

it seems like it was a design choice. There are a few types of sensors and apparently Fuzzy Dab, Fuzzy Stroke, Rotation, Tilt and Drawing Angle are calculated separately from the rest.

Whole logic was designed and explained here: https://invent.kde.org/graphics/krita/-/commit/159a61263e6d4f7812ba56e38fa29a1a02dcae11 It seems like it might be necessary for values like Hue etc.
Comment 3 Dmitry Kazakov 2023-07-21 16:08:00 UTC
I'm afraid that is an intentional behavior. Sensor mode is applied only to "scaling" sensors, which are all sensors except of Rotation, Fuzzy Dab, Fuzzy Stroke, Tilt Direction and Drawing Angle. The latter ones are considered "additive" and they just add up to the final value of the option value. I don't think we can change that without breaking sanity of the brush behavior in special cases, like Rotation and HSV values.