Currently, the weighted smoothing tool takes a distance as value, which is interpreted as canvas-space distance in pixels. This feels awkward for a few reasons; - when zooming in and out, you get different amounts of smoothing, making it difficult to create e.g. consistent lines while working at different zoom-levels - when working with canvases of different size (e.g. prototyping part of a composition in a smaller document) you get different amounts of smoothing - when switching between working on different resolutions (e.g. 128x128 pixelart vs. 2048x2048 HD-art) you get completely different results, so you can't just say "40 is my favourite value for doing line-work" - the current way things work is inconsistent with the new stabilizer mode which is resolution-independent (time-based smoothing) I think the intuition behind smoothing is that "it's like having an extra weight added to your hand to smooth out your hand-movements", so to the user it is most intuitive that smoothing is something that happens "to his input". Hence I don't think it should be proportional to canvas-space, but proportional to screenspace (which should always be proportional to the users hand-movements, unless he remaps his tablet) Reproducible: Always Steps to Reproduce: 1. Create 2048x2048 canvas 2. Set weighted smoothing tool to some high value (e.g. 1000) 3. Draw some lines (they should get nicely smoothed out) 3. zoom in to e.g. 500% 4. It's now basically impossible to make any fine lines because the smoothing tool smoothes your lines 5 times harder than it did when at 100% zoom.
Hi, Jonathan! Thanks for your report! Your suggestion looks quite reasonable. I think we'll implement it soon.
Git commit 555b20efdbc1f672984b567276358c41ccba4844 by Dmitry Kazakov. Committed on 06/06/2014 at 12:16. Pushed by dkazakov into branch 'krita-testing-kazakov'. [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. CCMAIL:kimageshop@kde.org M +19 -0 krita/plugins/tools/defaulttools/kis_tool_brush.cc M +5 -0 krita/plugins/tools/defaulttools/kis_tool_brush.h M +6 -0 krita/ui/canvas/kis_coordinates_converter.cpp M +1 -0 krita/ui/kis_canvas_resource_provider.cpp M +2 -1 krita/ui/kis_canvas_resource_provider.h M +10 -0 krita/ui/kis_config.cc M +3 -0 krita/ui/kis_config.h M +6 -0 krita/ui/kis_zoom_manager.cc M +6 -0 krita/ui/tool/kis_resources_snapshot.cpp M +2 -0 krita/ui/tool/kis_resources_snapshot.h M +12 -0 krita/ui/tool/kis_smoothing_options.cpp M +3 -0 krita/ui/tool/kis_smoothing_options.h M +7 -1 krita/ui/tool/kis_tool_freehand_helper.cpp http://commits.kde.org/calligra/555b20efdbc1f672984b567276358c41ccba4844
Git commit 5111f3feb003b5e052201b0115a424d5237a8423 by Dmitry Kazakov. Committed on 06/06/2014 at 12:16. Pushed by dkazakov into branch 'master'. [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. CCMAIL:kimageshop@kde.org M +19 -0 krita/plugins/tools/defaulttools/kis_tool_brush.cc M +5 -0 krita/plugins/tools/defaulttools/kis_tool_brush.h M +6 -0 krita/ui/canvas/kis_coordinates_converter.cpp M +1 -0 krita/ui/kis_canvas_resource_provider.cpp M +2 -1 krita/ui/kis_canvas_resource_provider.h M +10 -0 krita/ui/kis_config.cc M +3 -0 krita/ui/kis_config.h M +6 -0 krita/ui/kis_zoom_manager.cc M +6 -0 krita/ui/tool/kis_resources_snapshot.cpp M +2 -0 krita/ui/tool/kis_resources_snapshot.h M +12 -0 krita/ui/tool/kis_smoothing_options.cpp M +3 -0 krita/ui/tool/kis_smoothing_options.h M +7 -1 krita/ui/tool/kis_tool_freehand_helper.cpp http://commits.kde.org/calligra/5111f3feb003b5e052201b0115a424d5237a8423