Rotate sculpting brush may have an incorrect pen pressure behavior #83697

Open
opened 2020-12-12 12:29:13 +01:00 by s12a · 28 comments

System Information
Operating system: Linux-5.9.12-1-default-x86_64-with-glibc2.17 64 Bits
Graphics card: AMD Radeon (TM) RX 480 Graphics (POLARIS10, DRM 3.39.0, 5.9.12-1-default, LLVM 11.0.0) X.Org 4.6 (Core Profile) Mesa 20.2.4

Blender Version
Broken: version: 2.92.0 Alpha, branch: master, commit date: 2020-12-11 22:08, hash: 0c1d476923
Worked: (newest version of Blender that worked as expected)

Short description of error
The sensitivity to pressure of the Rotate Brush in Sculpting mode appears to be too low: no matter how hard the pen is pressed on the pen tablet, disabling pressure sensitivity produces much more controllable/faster results. Potentially other brushes in sculpting mode could be affected as well in various ways (only a general impression; unclear as of yet).

With Grease Pencil, pen pressure sensitivity appears to be correct and similar to that observed with a typical drawing program (Krita). So, this does not seem to be a general problem with Blender or my own pen tablet.

My pen tablet is a Wacom Intuos 5 Large. In Tablet settings inside Blender Preferences > Input, Max Threshold = 1.0 (max), Softness = 0.0

Exact steps for others to reproduce the error

  • Open the attached .blend file
  • Use the Rotate sculpting brush to attempt rotating the bumps on the provided plane object
  • Enable Pressure sensitivity for "Strength" in the brush and attempt it again applying maximum pressure on the pen tablet. Compare the difference in response

rotatebrush-veryhard.blend

**System Information** Operating system: Linux-5.9.12-1-default-x86_64-with-glibc2.17 64 Bits Graphics card: AMD Radeon (TM) RX 480 Graphics (POLARIS10, DRM 3.39.0, 5.9.12-1-default, LLVM 11.0.0) X.Org 4.6 (Core Profile) Mesa 20.2.4 **Blender Version** Broken: version: 2.92.0 Alpha, branch: master, commit date: 2020-12-11 22:08, hash: `0c1d476923` Worked: (newest version of Blender that worked as expected) **Short description of error** The sensitivity to pressure of the Rotate Brush in Sculpting mode appears to be too low: no matter how hard the pen is pressed on the pen tablet, disabling pressure sensitivity produces much more controllable/faster results. Potentially other brushes in sculpting mode could be affected as well in various ways (only a general impression; unclear as of yet). With Grease Pencil, pen pressure sensitivity appears to be correct and similar to that observed with a typical drawing program (Krita). So, this does not seem to be a general problem with Blender or my own pen tablet. My pen tablet is a Wacom Intuos 5 Large. In Tablet settings inside Blender Preferences > Input, Max Threshold = 1.0 (max), Softness = 0.0 **Exact steps for others to reproduce the error** - Open the attached .blend file - Use the Rotate sculpting brush to attempt rotating the bumps on the provided plane object - Enable Pressure sensitivity for "Strength" in the brush and attempt it again applying maximum pressure on the pen tablet. Compare the difference in response [rotatebrush-veryhard.blend](https://archive.blender.org/developer/F9504461/rotatebrush-veryhard.blend)
Author

Added subscriber: @s12a

Added subscriber: @s12a
Member

Added subscriber: @PratikPB2123

Added subscriber: @PratikPB2123
Member

Changed status from 'Needs Triage' to: 'Needs User Info'

Changed status from 'Needs Triage' to: 'Needs User Info'
Member

@s12a , can you please confirm the problem with 2.93LTS?

Don't know who uses tablet with Linux OS. May be Falk David can confirm if problem is still there for you ?

@s12a , can you please confirm the problem with 2.93LTS? Don't know who uses tablet with Linux OS. May be Falk David can confirm if problem is still there for you ?
Author

This comment was removed by @s12a

*This comment was removed by @s12a*
Member

Added subscriber: @filedescriptor

Added subscriber: @filedescriptor
Member

Thanks for checking. I don't have such system to test right now.

@filedescriptor can you try to replicate this?

Thanks for checking. I don't have such system to test right now. @filedescriptor can you try to replicate this?
Author

(the deleted message was due to me confusing this with a different bug I recently reported)

@PratikPB2123
I just tested this bug with 2.93.1 LTS on Windows x64 and I can reproduce it again. The Rotate sculpting brush appears to rotate the bumps on the provided surface in the initially provided .blend file much faster without pen pressure on Strength enabled than with, even after confirming in the Wacom Control Panel that the applied pen pressure was indeed maximum.

3.0 alpha 3d7021b4ec also behaves the same.

EDIT: to clarify, when I initially reported the bug months ago I was using Linux, but at the moment I'm using Windows and it can be still reproduced. So it also seems to be OS-independent.

*(the deleted message was due to me confusing this with a different bug I recently reported)* @PratikPB2123 I just tested this bug with 2.93.1 LTS on Windows x64 and I can reproduce it again. The Rotate sculpting brush appears to rotate the bumps on the provided surface in the initially provided .blend file much faster *without* pen pressure on Strength enabled than with, even after confirming in the Wacom Control Panel that the applied pen pressure was indeed maximum. 3.0 alpha 3d7021b4ec23 also behaves the same. EDIT: to clarify, when I initially reported the bug months ago I was using Linux, but at the moment I'm using Windows and it can be still reproduced. So it also seems to be OS-independent.
Author

As an additional note following more testing:

Using constant brush falloff without pen pressure on Strength, the behavior of the Rotate brush is very consistent and operates exactly as expected, with 1:1 mapping between the rotating motion of the cursor and geometry.

When Strength is enabled, again with constant brush falloff, things start getting weird. Not only the underlying geometry appears to rotate at least 2 times slower, but this value also changes depending on the starting pen pressure when the sculpting stroke was first initiated.

In other words, if the rotating sculpting motion is initiated with a low pressure, then no matter how hard the pen will be pressed afterwards, the rotation will remain very slow. Likewise, if the sculpting motion is initiated with a strong pen pressure, brush response will remain elevated during the entire brush stroke (but still lower than without Pen pressure/Strength enabled).

As an additional note following more testing: Using *constant* brush falloff without pen pressure on Strength, the behavior of the Rotate brush is very consistent and operates exactly as expected, with 1:1 mapping between the rotating motion of the cursor and geometry. When Strength is enabled, again with constant brush falloff, things start getting weird. Not only the underlying geometry appears to rotate at least 2 times slower, but this value also changes depending on the starting pen pressure when the sculpting stroke was first initiated. In other words, if the rotating sculpting motion is initiated with a low pressure, then no matter how hard the pen will be pressed afterwards, the rotation will remain very slow. Likewise, if the sculpting motion is initiated with a strong pen pressure, brush response will remain elevated during the entire brush stroke (but still lower than without Pen pressure/Strength enabled).

Added subscribers: @PrototypeNM1, @iss

Added subscribers: @PrototypeNM1, @iss

Changed status from 'Needs User Info' to: 'Needs Triage'

Changed status from 'Needs User Info' to: 'Needs Triage'

In #83697#1182573, @s12a wrote:
I just tested this bug with 2.93.1 LTS on Windows x64 and I can reproduce it again. The Rotate sculpting brush appears to rotate the bumps on the provided surface in the initially provided .blend file much faster without pen pressure on Strength enabled than with, even after confirming in the Wacom Control Panel that the applied pen pressure was indeed maximum.

3.0 alpha 3d7021b4ec also behaves the same.

EDIT: to clarify, when I initially reported the bug months ago I was using Linux, but at the moment I'm using Windows and it can be still reproduced. So it also seems to be OS-independent.

@PrototypeNM1 Can you check this?

> In #83697#1182573, @s12a wrote: > I just tested this bug with 2.93.1 LTS on Windows x64 and I can reproduce it again. The Rotate sculpting brush appears to rotate the bumps on the provided surface in the initially provided .blend file much faster *without* pen pressure on Strength enabled than with, even after confirming in the Wacom Control Panel that the applied pen pressure was indeed maximum. > > 3.0 alpha 3d7021b4ec23 also behaves the same. > > > EDIT: to clarify, when I initially reported the bug months ago I was using Linux, but at the moment I'm using Windows and it can be still reproduced. So it also seems to be OS-independent. @PrototypeNM1 Can you check this?

@iss OS independent and existing in 2.93 indicates to me this is either in GP or the hardware itself. At a glance this doesn't look like my area.

@iss OS independent and existing in 2.93 indicates to me this is either in GP or the hardware itself. At a glance this doesn't look like my area.

In #83697#1187349, @PrototypeNM1 wrote:
@iss OS independent and existing in 2.93 indicates to me this is either in GP or the hardware itself. At a glance this doesn't look like my area.

The quote indicates, that this isn't OS specific, that's why I asked you. I can't check behavior here though so don't know which module this task would belong to.

> In #83697#1187349, @PrototypeNM1 wrote: > @iss OS independent and existing in 2.93 indicates to me this is either in GP or the hardware itself. At a glance this doesn't look like my area. The quote indicates, that this isn't OS specific, that's why I asked you. I can't check behavior here though so don't know which module this task would belong to.

Follow up to our discussion in chat: we clarified that the issue is OS independent.

To me this looks like an issue with the brush itself, which would be Sculpt, Paint & Texture module (I've gone ahead and added it). @s12a it might help clarify the issue if you could upload a video comparing what's expected vs what's happening.

Follow up to our discussion in chat: we clarified that the issue is OS independent. To me this looks like an issue with the brush itself, which would be Sculpt, Paint & Texture module (I've gone ahead and added it). @s12a it might help clarify the issue if you could upload a video comparing what's expected vs what's happening.
Author

Here is a demonstration of the issue, using Blender 2.93 LTS with factory settings. For further clarity, the brush falloff was set to "Constant".

20210706-rotate-brush-bug-demonstration.mp4

Here is a demonstration of the issue, using Blender 2.93 LTS with factory settings. For further clarity, the brush falloff was set to "Constant". [20210706-rotate-brush-bug-demonstration.mp4](https://archive.blender.org/developer/F10214747/20210706-rotate-brush-bug-demonstration.mp4)
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Member

Changed status from 'Needs Triage' to: 'Confirmed'

Changed status from 'Needs Triage' to: 'Confirmed'
Member

Can confirm.

This is because pressure is only taken once at the very beginning of the stroke if the stroke does not support changing radius while dragging (see paint_supports_dynamic_size, sculpt_update_cache_variants, sculpt_is_grab_tool)
A similar thing came up for radius (but was closed, see studio/blender-studio#56930 (Brush size pressure setting broken)), but I think here (for pressure) it could actually make sense to support sensitivity.
Especially because you will never be able to get 1.0 strength when starting a stroke.

Got a patch for this (not sure if this is desired in all situations)

Can confirm. This is because pressure is only taken once at the very beginning of the stroke if the stroke does not support changing radius while dragging (see `paint_supports_dynamic_size`, `sculpt_update_cache_variants`, `sculpt_is_grab_tool`) A similar thing came up for radius (but was closed, see studio/blender-studio#56930 (Brush size pressure setting broken)), but I think here (for pressure) it could actually make sense to support sensitivity. Especially because you will never be able to get 1.0 strength when starting a stroke. Got a patch for this (not sure if this is desired in all situations)

Removed subscriber: @PrototypeNM1

Removed subscriber: @PrototypeNM1
Member

Added subscriber: @JulienKaspar

Added subscriber: @JulienKaspar
Member

I tested D12568 and it doesn't fix the issue. We should disable pressure sensitivity completely for any brushes that use an anchored stroke type by default to fix the issue.
A further improvement would be to remove the pressure sensitivity button from those brushes as well.

Later on we could revisit D6603 to add pressure sensitivity to anchored brushes properly.

I tested [D12568](https://archive.blender.org/developer/D12568) and it doesn't fix the issue. We should disable pressure sensitivity completely for any brushes that use an anchored stroke type by default to fix the issue. A further improvement would be to remove the pressure sensitivity button from those brushes as well. Later on we could revisit [D6603](https://archive.blender.org/developer/D6603) to add pressure sensitivity to anchored brushes properly.
Member

In #83697#1361207, @JulienKaspar wrote:
We should disable pressure sensitivity completely for any brushes that use an anchored stroke type by default to fix the issue.

You mean Anchored Stroke Method? afaict, there are no (sculpt) brushes that use this by default (Rotate isnt, nor is Grab or Snake Hook)
Or would you mean disabling/hiding this for any brush that has Anchored Stroke Method enabled at any time? (doesnt seem to be used in that case, so might make sense)
Or do you just mean Grab, Snake Hook & Rotate?
There is another set of brushes (internally detected by sculpt_is_grab_tool)

  • SCULPT_TOOL_GRAB, doesnt use pressure, already has the pressure sensitivity hidden
  • SCULPT_TOOL_ELASTIC_DEFORM, doesnt use pressure (shows the setting in the UI though)
  • SCULPT_TOOL_POSE, doesnt use pressure (shows the setting in the UI though)
  • SCULPT_TOOL_BOUNDARY, doesnt use pressure (shows the setting in the UI though)
  • SCULPT_TOOL_THUMB, uses pressure sensitivity [but only the pressure from the start of the stroke, same as Rotate it seems]
  • SCULPT_TOOL_ROTATE, uses pressure [but problematic as desribed in this report]
  • SCULPT_TOOL_SNAKE_HOOK doesnt use pressure, already has the pressure sensitivity hidden

So if we could define which ones really should not use pressure (not even the one from the start of the stroke), we could easily tweak brush_strength in sculpt.c to not use it.

A further improvement would be to remove the pressure sensitivity button from those brushes as well.

The UI part we can control via BrushCapabilitiesSculpt_has_strength_pressure_get

> In #83697#1361207, @JulienKaspar wrote: > We should disable pressure sensitivity completely for any brushes that use an anchored stroke type by default to fix the issue. You mean `Anchored` `Stroke Method`? afaict, there are no (sculpt) brushes that use this by default (`Rotate` isnt, nor is `Grab` or `Snake Hook`) Or would you mean disabling/hiding this for any brush that has `Anchored` `Stroke Method` enabled at any time? (doesnt seem to be used in that case, so might make sense) Or do you just mean `Grab`, `Snake Hook` & `Rotate`? There is another set of brushes (internally detected by `sculpt_is_grab_tool`) - `SCULPT_TOOL_GRAB`, doesnt use pressure, already has the pressure sensitivity hidden - `SCULPT_TOOL_ELASTIC_DEFORM`, doesnt use pressure (shows the setting in the UI though) - `SCULPT_TOOL_POSE`, doesnt use pressure (shows the setting in the UI though) - `SCULPT_TOOL_BOUNDARY`, doesnt use pressure (shows the setting in the UI though) - `SCULPT_TOOL_THUMB`, uses pressure sensitivity [but only the pressure from the start of the stroke, same as Rotate it seems] - `SCULPT_TOOL_ROTATE`, uses pressure [but problematic as desribed in this report] - `SCULPT_TOOL_SNAKE_HOOK` doesnt use pressure, already has the pressure sensitivity hidden So if we could define which ones really should not use pressure (not even the one from the start of the stroke), we could easily tweak `brush_strength` in sculpt.c to not use it. > A further improvement would be to remove the pressure sensitivity button from those brushes as well. The UI part we can control via `BrushCapabilitiesSculpt_has_strength_pressure_get`
Member

The UI part we can control via BrushCapabilitiesSculpt_has_strength_pressure_get

Oh, and shouldnt we also use paint_supports_dynamic_size to define the same thing for radius pressure sensitivity capabilities as well?
So only show the pressure sensitivity for tools that actually use it (these are the same candidates: not for Anchored strokes, not for the sculpt_is_grab_tool brushes mentioned above)?

> The UI part we can control via BrushCapabilitiesSculpt_has_strength_pressure_get Oh, and shouldnt we also use `paint_supports_dynamic_size` to define the same thing for radius pressure sensitivity capabilities as well? So only show the pressure sensitivity for tools that actually use it (these are the same candidates: not for Anchored strokes, not for the `sculpt_is_grab_tool` brushes mentioned above)?
Member

additional note: once done, we should also cleanup the BRUSH_ALPHA_PRESSURE / BRUSH_SIZE_PRESSURE default flags for the brushes in the default startup as well as BKE_brush_sculpt_reset

additional note: once done, we should also cleanup the `BRUSH_ALPHA_PRESSURE` / `BRUSH_SIZE_PRESSURE` default flags for the brushes in the default startup as well as `BKE_brush_sculpt_reset`
Philipp Oeser self-assigned this 2022-10-13 09:17:46 +02:00
Member

Since I have already been looking at this (and also have #101769 on my table) I think it makes sense to reclaim

Since I have already been looking at this (and also have #101769 on my table) I think it makes sense to reclaim
Member

@lichtwerk That sounds great! The brushes that you've listed should not use pressure sensitivity for size and pressure at all, and should have the toggle hidden in the UI.

@lichtwerk That sounds great! The brushes that you've listed should not use pressure sensitivity for size and pressure at all, and should have the toggle hidden in the UI.
Member

Removed subscriber: @filedescriptor

Removed subscriber: @filedescriptor
Philipp Oeser removed the
Interest
Sculpt, Paint & Texture
label 2023-02-10 09:12:06 +01:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
7 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#83697
No description provided.