3D Cursor & Origin overlays should be grayed out if hidden by current mode/tool #93501

Open
opened 2021-11-30 09:27:10 +01:00 by Bulat · 20 comments

(NOTE) This task is part of the community & sub tasks of the workboard. Anyone is free to pick up this task and contribute. For any questions or needed reviewers, please tag @Sergey @HooglyBoogly and @JulienKaspar.

The 3D Cursor and Origins are not displayed in painting modes as well as sculpt mode.
The overlay popover does not give feedback on this though.
2021-11-30_11-16-54.jpg

The overlays should be grayed out in the modes and tools where it is hidden.
Ideally there should be exceptions to this rule, like while the 3D Cursor is transformed (already implemented) and when the current Tool is using it (Annotation Tools).

(NOTE) This task is part of the community & sub tasks of the workboard. Anyone is free to pick up this task and contribute. For any questions or needed reviewers, please tag @Sergey @HooglyBoogly and @JulienKaspar. The 3D Cursor and Origins are not displayed in painting modes as well as sculpt mode. The overlay popover does not give feedback on this though. ![2021-11-30_11-16-54.jpg](https://archive.blender.org/developer/F12668227/2021-11-30_11-16-54.jpg) The overlays should be grayed out in the modes and tools where it is hidden. Ideally there should be exceptions to this rule, like while the 3D Cursor is transformed (already implemented) and when the current Tool is using it (Annotation Tools).
Author

Added subscriber: @BulatKR

Added subscriber: @BulatKR
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Member

This is probably because the Clone tool might use it, will check.

This is probably because the `Clone` tool might use it, will check.
Member

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

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

This is controlled by is_cursor_visible:

  • cursor is not visible in all paint modes, with following exceptions:
    • weightpaint and posemode combined
    • texturepaint and using the Clone tool

It might make sense to reflect this in the UI somewhat by hiding the setting in paint modes like:
P2625: T93501_snippet



diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 3fd19dd70cf..ea391a9c490 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -6104,7 +6104,10 @@ class VIEW3D_PT_overlay_guides(Panel):
         sub.prop(overlay, "show_stats", text="Statistics")
 
         sub = split.column()
-        sub.prop(overlay, "show_cursor", text="3D Cursor")
+        # match is_cursor_visible() somewhat
+        use_show_cursor = context.mode not in {'PAINT_WEIGHT', 'PAINT_TEXTURE', 'PAINT_VERTEX', 'WEIGHT_GPENCIL'}
+        if use_show_cursor:
+            sub.prop(overlay, "show_cursor", text="3D Cursor")
         sub.prop(overlay, "show_annotation", text="Annotations")
 
         if shading.type == 'MATERIAL':

So currently this is by design (and not a bug). May I ask:

  • how are you displaying the 3D Cursor in Texture paint mode? (you were mentioning you figured out a way)
  • why would you want the 3D Cursor in a painting mode? (if there is a valid usecase, we might want to reconsider hiding it)
This is controlled by `is_cursor_visible`: - cursor is not visible in all paint modes, with following exceptions: - weightpaint and posemode combined - texturepaint and using the Clone tool It might make sense to reflect this in the UI somewhat by hiding the setting in paint modes like: [P2625: T93501_snippet](https://archive.blender.org/developer/P2625.txt) ``` diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py index 3fd19dd70cf..ea391a9c490 100644 --- a/release/scripts/startup/bl_ui/space_view3d.py +++ b/release/scripts/startup/bl_ui/space_view3d.py @@ -6104,7 +6104,10 @@ class VIEW3D_PT_overlay_guides(Panel): sub.prop(overlay, "show_stats", text="Statistics") sub = split.column() - sub.prop(overlay, "show_cursor", text="3D Cursor") + # match is_cursor_visible() somewhat + use_show_cursor = context.mode not in {'PAINT_WEIGHT', 'PAINT_TEXTURE', 'PAINT_VERTEX', 'WEIGHT_GPENCIL'} + if use_show_cursor: + sub.prop(overlay, "show_cursor", text="3D Cursor") sub.prop(overlay, "show_annotation", text="Annotations") if shading.type == 'MATERIAL': ``` So currently this is by design (and not a bug). May I ask: - how are you displaying the 3D Cursor in Texture paint mode? (you were mentioning you figured out a way) - why would you want the 3D Cursor in a painting mode? (if there is a valid usecase, we might want to reconsider hiding it)
Author

Maybe I put it wrong, I haven't found a way to display 3D Cursor in Texture Paint mode.

I need 3D Cursor for precise positioning of drawing in anchored stroke mode. I want to draw the folds using texture mask. First I apply the dark part, and then the light part, but for accurate drawing it is necessary to use both applications from about the same place, for this I would like to somehow use 3D Cursor if possible.

final_61a6097310656f01554c37b3_673357_2.mp4

Maybe I put it wrong, I haven't found a way to display 3D Cursor in Texture Paint mode. I need 3D Cursor for precise positioning of drawing in anchored stroke mode. I want to draw the folds using texture mask. First I apply the dark part, and then the light part, but for accurate drawing it is necessary to use both applications from about the same place, for this I would like to somehow use 3D Cursor if possible. [final_61a6097310656f01554c37b3_673357_2.mp4](https://archive.blender.org/developer/F12668566/final_61a6097310656f01554c37b3_673357_2.mp4)
Member

Changed status from 'Needs User Info' to: 'Needs Developer To Reproduce'

Changed status from 'Needs User Info' to: 'Needs Developer To Reproduce'
Member

OK, so there seems to be a usecase for this.
But since this is working as coded atm. there is probably a design decision to be made here.
Will put the task staus to reflect this.

OK, so there seems to be a usecase for this. But since this is working as coded atm. there is probably a design decision to be made here. Will put the task staus to reflect this.
Philipp Oeser changed title from The 3D Cursor is not displayed in Texture Paint mode, but there is a switch in the menu. to Texture Paint: 3D Cursor only visible in Clone tool (needed in other tools too in some workflows, also always has an Overlay option) 2021-12-20 08:59:18 +01:00
Member

Added subscriber: @JulienKaspar

Added subscriber: @JulienKaspar
Member

Changed status from 'Needs Developer To Reproduce' to: 'Confirmed'

Changed status from 'Needs Developer To Reproduce' to: 'Confirmed'
Member

For the current design in painting and sculpt modes there is no use case for using the 3D cursor. Whenever there would be one like with the Close Tool it would be displayed.
I think in this case the user should use the annotate tool to mark important areas (That's what the tool is meant for after all).

But I agree that the 3D cursor overlay should be greyed out in this case to not be misleading. The description can be updated for that.

For the current design in painting and sculpt modes there is no use case for using the 3D cursor. Whenever there would be one like with the Close Tool it would be displayed. I think in this case the user should use the annotate tool to mark important areas (That's what the tool is meant for after all). But I agree that the 3D cursor overlay should be greyed out in this case to not be misleading. The description can be updated for that.
Member

This is not strictly a bug so I'll add it to the lower priority tasks on the workboard.

This is not strictly a bug so I'll add it to the lower priority tasks on the workboard.
Julien Kaspar changed title from Texture Paint: 3D Cursor only visible in Clone tool (needed in other tools too in some workflows, also always has an Overlay option) to 3D Cursor overlay should be greyed out if hidden by current mode/tool 2022-05-14 13:29:44 +02:00

Added subscriber: @MeshVoid

Added subscriber: @MeshVoid

Can we actually enable the toggling of 3d cursor visibility in Sculpt Mode? Why was it removed in the first place? it's actually VERY convenient to have 3d cursor in sculpt mode to rotate elements and position them with more precision and use it with the rest of the Blender functionality and Transform orientation and Transform pivot points.

There are many cases when 3d cursor can be used very effectively in the Sculpt mode. For example, I have written personal macros to add different primitives in the sculpt mode without leaving it (which blender's sculpt mode is still lacking) it uses 3d cursor to place the objects, but it's really annoying that I can't toggle the visibility of 3d cursor in the sculpt mode (BUT It's actually still there because I can shift+right click to place it in sculpt mode and use it with custom transform modes, the thing is, for some weird reason, it's hidden permanently) to see the exact placement before I run my macro. And a user using Blender's defaults can also benefit from using 3d cursor in the Sculpt mode to manipulate sculpted objects.

I really don't understand why is it being toggled off permanently in that mode. Is there a practical reason to turn it off? I don't think that there is, apart from the very subjective "esthetics", other than that it's a hindrance to Blender power users. And if somebody doesn't like it, he can always turn it's display off?

Can we actually **enable** the toggling of 3d cursor visibility in Sculpt Mode? Why was it removed in the first place? it's actually **VERY convenient** to have 3d cursor in sculpt mode to rotate elements and position them with more precision and use it with the rest of the Blender functionality and Transform orientation and Transform pivot points. There are many cases when 3d cursor can be used very effectively in the Sculpt mode. For example, I have written personal macros to add different primitives in the sculpt mode without leaving it (which blender's sculpt mode is still lacking) it uses 3d cursor to place the objects, but it's really annoying that I can't toggle the visibility of 3d cursor in the sculpt mode (BUT It's actually still there because I can shift+right click to place it in sculpt mode and use it with custom transform modes, the thing is, for some weird reason, it's hidden permanently) to see the exact placement before I run my macro. And a user using Blender's defaults can also benefit from using 3d cursor in the Sculpt mode to manipulate sculpted objects. I really don't understand why is it being toggled off permanently in that mode. Is there a practical reason to turn it off? I don't think that there is, apart from the very subjective "esthetics", other than that it's a hindrance to Blender power users. And if somebody doesn't like it, he can always turn it's display off?

2022-08-18 15-07-51.mkv

P.S. Here is a little video demonstrating a use case for 3d cursor in sculpt mode to quickly manipulate an object, when you use it in sculpt mode you can quickly come up with interesting shapes and symmetrize your model, having functioning 3d Cursor toggle option would have helped, especially when loads of users use pie menus (even default ones that come with blender) to quickly set up Transform pivot points and orientation. So I'm really wondering why devs say there is no use cases for it in sculpt mode, I always was surprised that it worked in sculpt mode but was always invisible.

[2022-08-18 15-07-51.mkv](https://archive.blender.org/developer/F13399798/2022-08-18_15-07-51.mkv) P.S. Here is a little video demonstrating a use case for 3d cursor in sculpt mode to quickly manipulate an object, when you use it in sculpt mode you can quickly come up with interesting shapes and symmetrize your model, having functioning 3d Cursor toggle option would have helped, especially when loads of users use pie menus (even default ones that come with blender) to quickly set up Transform pivot points and orientation. So I'm really wondering why devs say there is no use cases for it in sculpt mode, I always was surprised that it worked in sculpt mode but was always invisible.
Member

@MeshVoid The reason why it's not displayed in sculpt mode is because it is not used in that mode, or at least there's no reason to use it yet.
Any case where it can be used right now like with the transform tools is not intended and not properly supported in the first place.

For a better environment for discussion I recommend to visit the 'sculpt-paint-texture' channel on blender.chat. You can tag me there with @JulienKaspar.

@MeshVoid The reason why it's not displayed in sculpt mode is because it is not used in that mode, or at least there's no reason to use it yet. Any case where it can be used right now like with the transform tools is not intended and not properly supported in the first place. For a better environment for discussion I recommend to visit the 'sculpt-paint-texture' channel on blender.chat. You can tag me there with @JulienKaspar.

Added subscriber: @zeauro

Added subscriber: @zeauro

In #93501#1405521, @JulienKaspar wrote:
@MeshVoid The reason why it's not displayed in sculpt mode is because it is not used in that mode, or at least there's no reason to use it yet.

It is uncorrect. It is useful for annotations. Annotation tools are present in all modes. By default, they are using 3D Cursor placement.

And like it was said, it could be useful for a lot of things in sculpt mode.

Plus, it is already an overlay that can be enable or disable at will in other modes.
That does not make sense in terms of usability to force its removal of one mode.
When in all modes, it can be disabled by who wants to ignore.

> In #93501#1405521, @JulienKaspar wrote: > @MeshVoid The reason why it's not displayed in sculpt mode is because it is not used in that mode, or at least there's no reason to use it yet. It is uncorrect. It is useful for annotations. Annotation tools are present in all modes. By default, they are using 3D Cursor placement. And like it was said, it could be useful for a lot of things in sculpt mode. Plus, it is already an overlay that can be enable or disable at will in other modes. That does not make sense in terms of usability to force its removal of one mode. When in all modes, it can be disabled by who wants to ignore.
Member

@zeauro I think the Annotation example is a noteworthy exception for the current logic. To fix this it would be best to enable the 3D cursor if the Annotation Tool is active.
The overlays should be more context aware but whenever they should be hidden, the overlay settings need to reflect that.

I'm updating the description to make the task more clear.

@zeauro I think the Annotation example is a noteworthy exception for the current logic. To fix this it would be best to enable the 3D cursor if the Annotation Tool is active. The overlays should be more context aware but whenever they should be hidden, the overlay settings need to reflect that. I'm updating the description to make the task more clear.
Julien Kaspar changed title from 3D Cursor overlay should be greyed out if hidden by current mode/tool to 3D Cursor & Origin overlays should be grayed out if hidden by current mode/tool 2023-01-19 15:56:59 +01:00
Member

Added subscriber: @JosephEagar

Added subscriber: @JosephEagar
Julien Kaspar added this to the Sculpt, Paint & Texture project 2023-02-08 10:48:53 +01:00
Philipp Oeser removed the
Interest
Sculpt, Paint & Texture
label 2023-02-10 09:11:43 +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 Assignees
5 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#93501
No description provided.