Cursors Design #69441
Labels
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
12 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#69441
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
'Cursor' in this context refers to on-screen mouse cursors, such as these:
{F7715096, size=full}
Issues
In Blender, our cursors are quite weak.
The biggest issues are:
The purpose of the cursor
The purpose of the on-screen cursor is twofold
In Blender, we can make use of much richer cursor support. Cursors can communicate so much more than what they do currently. For example:
Cursor rules
To develop a consistent system of tool cursors, we can lay down a series of rules for cursors to follow:
Companion cursors
For many tools, the simplest solution for a cursor can be to simply append the tool icon to a smaller pointer, like so:
{F8622954, size=full}
Gizmos
Navigation
When simply manipulating the view, we could add special cursors, rather than just keeping the arrow:
Tools
{F8622927, size=full}
The use of the companion cursor is for tools which override selection. By default, that means tools like Measure, Cursor, Add (Cube, Sphere etc), Loop Cut, Knife and so on. Tools like Bevel, Extrude Region, Inset etc use a gizmo, so for those we keep the default cursor, except if the tool setting is set to Active Tool, in which case those tools do override selection.
Additional overlays
There are some cases where the cursors can contain even more information than just the active tool. Here are some examples:
{F8622946, size=full}
We can make it so the crosshair gets a plus or a minus depending on which tool setting is chosen.
Lasso Select:
{F8622948, size=full}
Related tasks
D5197: UI WIP - Changes to Cursors
Added subscribers: @WilliamReynish, @semaphore, @mendio, @0o00o0oo, @antoniov, @T.R.O.Nunes, @Ehab, @BartekMoniewski, @DuarteRamos, @MaciejJutrzenka, @Znio.G, @brecht, @Sergey, @dfelinto, @mont29, @ideasman42
Cursors (parent task)to Cursors DesignAdded subscriber: @renderhjs
Added subscriber: @Bolos
This comment was removed by @Bolos
Added subscriber: @Draxley
Added subscriber: @AlexeyPerminov
Added subscriber: @ckohl_art
What is your though on "cursor overlays" or accessory indicator icons?
I'm not much fan of "pictorial cursors", I find them distracting, they get in the way, and it is not always obvious where the "hotspot" is.
I'd much rather always have a more generic neutral looking cursor like an arrow or crosshair (can still adapt or change according to active tool), with an "overlay" or an icon by its side that indicates what the tool will do.
GIMP has a preference for this, where you always use a crosshair for brushes and the brush icon is optionally presented by its side.
In Blender this could be used to our advantage too, where various simultaneous overlays could indicate cumulative active settings, like having Move Tool active, with Proportional Editing turned on, or having Box Select with in Add to Selectionmode.
@WilliamReynish Trying to make sense of all this in a more consistent and systematized way. This is my first pass attempt at trying to establish some rules and get a grip of what work would be needed.
What do you think of this, is it helpful?
A mode companion: Something generally simpler, maybe non pictorial or text based like selection modes (add, subtract, intersect, invert)
When possible companion icons should be outline only or lineart only so they dont occlude the subject, and get in the way of users as little as possible.
General
Screenspace
Navigation
3D View
Object Mode
Edit Mode
Paint Mode
Sculpt
Node
UVs
If this is helpful I could later improve with some in-table images.
Added subscriber: @PierreSchiller
Could we propose a "cache sim" running cursor? or any other cursor that needs "time" for that matter? Currently it only displays numbers with a black box.
Added subscribers: @Harley, @JulianEisel
This design seems like a good one to try and evaluate. I do see some trade-offs (visual noise & companions obscuring the view), it needs testing to see if they are troublesome in practice.
There's the question of what's technically possible on different OSes or display-servers. @Harley did experiments on that.
(An eye icon for view orbiting seems a bit weird. Not what this task is about though.)
@DuarteRamos didn't go over your proposal in all detail, but seems like you're proposing something pretty similar to what's in the description now?
@PierreSchiller I don't think the cursor should be used to indicate background processes. That's what progress bars are for (which we may improve). If there's a blocking process, the OS changes the cursor accordingly.
Yes, both seem quite close now.
I'd eventually be willing to help with this, if you like. I designed a few of the new cursors introduced by Harley Acheson.
My table was more of an attempt at a systematic approach to answering a few practical questions:
1 - Which of these are actually feasible/dedirable?
2 - Can companion cursors be an actual separate icon overlayed over the main cursor at draw time, or do they have to be designed into a completely different cursor altogether? (Basically can we draw companions or are they just separate cursor designs?)
3 - Are mode icons also separate overlays composited over main cursors, or slightly different separate cursor designs? (Basically can we draw cursor overlays?)
4 - What actual bitmap sizes will be required, and will we need to cater for different DPIs?
I'm sure most of these are only answerable once someone actually starts implementing them.
Added subscriber: @wevon-2
The mesh, clothing, and color filters of the sculpture module have the diagonal cursor arrow.
I believe that being the positive effect of the filter, when clicking and moving to the right and the negative to the left, a double horizontal arrow would be the correct cursor icon to use. The side could even be accentuated when the filter is running, in other words, illuminate the right arrow when clicking and moving to the right, and vice versa for the left.
Added subscriber: @Hologram
Added subscriber: @AlexeyAdamitsky