Page MenuHome

UI - Change to Sculpting Cursor
AbandonedPublic

Authored by Harley Acheson (harley) on Jun 15 2019, 6:36 PM.

Details

Summary

The current cursor is comprised of a single color so it can be difficult to read on some backgrounds.

This patch changes that cursor to one that has stark contrast, so will be visible on various backgrounds, has a large transparent center area, and has minimal weight. Favors white like the other cursors.

Small version looks like this:

Large version:

Diff Detail

Repository
rB Blender

Event Timeline

On paper this seems like an improvement, however in practice, this cursor looks fairly jarring on the screen I think:

Probably the main issue with the previous cursor, was that on Windows, it is drawn black, which have it lower contrast in common scenarios. On Mac it was white, which was almost always readable.

Actually reversing a bit. Cursors on the mac are reversed in color and the one proposed earlier looks too ugly there. When on a background matching the inner color then it looks like pairs of rails.

The patch now makes it look like the following. It does not have the "rail" effect, is always centered and symmetrical

@William Reynish (billreynish) Something is wrong (maybe on the Mac side)

The cursor you showed in the first post should look like this in action:


Which is totally different from your screenshots.

How can we test it on Windows?

The update seems much better here - probably acceptable, even though it's more busy.

This revision is now accepted and ready to land.Jun 15 2019, 8:03 PM

@TheRedWaxPolice (TheRedWaxPolice) : yes on Mac the colors of the cursor is reversed. With white as the outline it ends up looking like two outer rails.

Can you test the current patch (thin, centered, alternating) and see what you think?

Can you test the current patch (thin, centered, alternating) and see what you think?

I can't, sorry. I'm not familiar with those operations.

@TheRedWaxPolice (TheRedWaxPolice) - no worries. But what do you of the idea of it looking like the following? It is symetrical, is equally visible on light or dark backgrounds, and looks almost identical on PC versus Mac.

@TheRedWaxPolice (TheRedWaxPolice) - At first glance it looks acceptable.

Yes, has to be better than we have now. Can always replace it later if we find something even better.

Hello @Harley Acheson (harley) thanks for this update.
Here is to example of me using first master with your patch and Pablo's branch, What i have understood is that when i m sculpting i unconsciously like to see where is the cursor and that is the place that maximum of influence will be applied (sorry for confusing in my BA thread). When the cursor is not visible i m getting confused.
Here is a gif with with your patch


and here is with Pablo's branch

Notice the size of the cursor and how it is almost invisible to see the cursor with your patch. Can user have ability to resize the cursor? or can make a bit bigger? or what are the parameters to change in the patch that will affect the size?

@Erick Tukuniata (erickblender) Yes.

So, why can't the sculpt mode use the same cursor as in Pablo's branch? It has great visibility already.
And maybe this cursor patch could be used in the painting modes.

@Erick Tukuniata (erickblender), @ThinkingPolygons (ThinkingPolygons):

I absolutely agree that the cursor you show in Pablo's branch is much easier to see. The one in this patch has much less visual weight, but that is not by design to be honest...

I am not a sculptor and would literally stick any cursor in there that is agreed to. I just want you guys happy and have no opinion of my own driving any changes.

The fundamental issue here, just getting something approved, is an odd one. The problem is that on William's Mac (and I am assuming all Macs, so correct me if you know otherwise) the colors of the cursors are reversed. So what we see as white on black becomes black on white. And that is not a neutral change: white always has far more impact than black on almost all backgrounds. Further, when using his high-DPI "Retina" display, all the cursors are just blown up 2X roughly so they look to him to be blocky.

Combined, this means that PCs might see a a nice white cursor with a dark outline to increase contrast. But to William he will be seeing it as blocky white rails on either side of nothingness. LOL. Which was the reason we changed from the cursor shown in the sculpting branch to the one currently in the branch that is not working well in many cases.

So the cursor in this patch is an attempt to make it look the same on all systems so we can move forward with something that is at least visible on all backgrounds, albeit less strongly. I'm not sure of any other quick solutions that can (almost?) satisfy all people. Longer term we need a visually-stronger cursor that can be turned off or on, and also an option to reverse the colors of the cursors in Preferences. But that would be something that can only be done after the 2.80 freeze.

IMHO we are missing the initial reason for creating this cursor. In grease pencil, when you are drawing the cursor is very annoying, so you need a very subtle cursor to know where is the cursor, but not disturbing your drawing. If we back to more complex cursor, we will back to the same problem we had before changing the cursor.... maybe, the cursor is too thin for sculpting and other modes, but for sure the cross is not a solution for grease pencil.

@Antonio Vazquez (antoniov)

I agree with having a subtle cursor. I do quite a bit of sculpting on a regular basis and unless I'm doing something precise like hard-surface detail or some kind of intricate pattern I would prefer no cross-hair at all. So I kind of prefer what's in at the moment.
Which is an all black cross-hair(on windows). I don't notice it unless I focus on it, which is typically when I need it.

That being said, I won't mind what happens as long as there's a simple way to turn it off or alter it.

@Antonio Vazquez (antoniov), @Robert Gallagher (robberknyght)

So I kind of prefer what's in at the moment. Which is an all black cross-hair(on windows).

This is the crux of the current problem. The cursor was recently changed to that all-black cursor.

On Mac it is very stark bright-white cursor because that OS reverses the colors. On PC it is a more subtle all-black cursor that does not work at all on dark surfaces, which prompted the call to fix it.

Visibility on all backgrounds requires that the cursor have more than one color, but the effect of those contrasting colors is quite different on PC and Mac.

So that leaves me with no clue on how to proceed, and worry that we will be stuck with the cursor we currently have because it was last in. LOL

@Robert Gallagher (robberknyght) Sorry, but the black cursor is really bad, doesn't work at all, it looks like a bug T65694

If we can't have a good sculpting cursor like the one on pablo's branch, then I prefer this cursor patch, but the black cursor is a no go.

@Harley Acheson (harley) Can this patch be commited so we can fully test it?

See my comment in D5036:

I've reverted this change because it was only supposed to affect grease pencil, but also ended up affecting sculpt mode. This then spawned long discussion about the ideal cursor shape, and that's really not the simple and safe change I approved. Since this has not been quickly resolved I'm reverting the commit.
Unless someone can come up with a simple and safe change, this will have to move to 2.81. After the UI freeze is not the time for UI experimentation.

@Brecht Van Lommel (brecht) : I've reverted this change

Awesome. Thanks. That should once again, work well-enough for most users.

this will have to move to 2.81

Yes, hoping to add a user preference to "Reverse Cursors" for 2.81 to address this PC versus Mac difference.

In rB087a4898676d: Cleanup: simplify GHOST cursor API, no functional changes I've made it so you can control the color inversion of cursors on macOS per cursor. Not sure this needs a user preference?

The high DPI thing is fixable as well, but I don't have time for it for 2.80.

@Brecht Van Lommel (brecht) : The high DPI thing is fixable as well

That would be wonderful.

can control the color inversion of cursors on macOS per cursor

I was going to do just do a simple toggling of the bits in the cursor bitmap (not mask) in window_set_custom_cursor_ex() based on a user preference. Quick and easy and seems to work fine. Might also have to change a cursor or two (only) that right now are black with white outline so they are all consistently one style. That way any user, regardless of OS, can choose regular or inverted cursor colors.

But your idea would make much more sense if we just want to *correct* a couple cursors, like the crosshairs ones. It is not like we have had people asking for inverted cursor colors outside of this crosshairs issue. I did not know though, that it is OUR CODE that is reversing the colors of the cursors on Mac. I think we just don't want to do that Mac-specific reversal for BC_PAINTBRUSHCURSOR, BC_PAINTCROSSCURSOR, and BC_CROSSCURSOR as far as I know.

But again, I don't have a Mac so I should probably just back away slowly. LOL

This proposal whitout last white pixel seems good to me. IMO, it is what makes it too big and perceived as too intrusive.

@ronan ducluzeau (zeauro) wrote:
This proposal whithout last white pixel seems good to me. IMO, it is what makes it too big and perceived as too intrusive.

Actually that cursor has been described as both "too intrusive" and "too invisible" by different people. LOL. But looks like we are back to a previous cursor for a little while anyway.

But for completeness though, by "last pixel" you do mean the last outer white pixels, not the furthest inner ones right? The difference is basically if you want the gap in the middle to be larger. Removing one white pixel does make it nicely white-black balanced.

I still have a feeling we might eventually need a small selection of different cursors to select from for painting and sculpting. Otherwise I doubt we will find a nice balance that makes everyone happy.

@ronan ducluzeau (zeauro) wrote:
This proposal whithout last white pixel seems good to me. IMO, it is what makes it too big and perceived as too intrusive.

Actually that cursor has been described as both "too intrusive" and "too invisible" by different people. LOL. But looks like we are back to a previous cursor for a little while anyway.
But for completeness though, by "last pixel" you do mean the last outer white pixels, not the furthest inner ones right? The difference is basically if you want the gap in the middle to be larger. Removing one white pixel does make it nicely white-black balanced.
I still have a feeling we might eventually need a small selection of different cursors to select from for painting and sculpting. Otherwise I doubt we will find a nice balance that makes everyone happy.

We could have two cursors so people can choose between a smaller and larger cursor.

I still have a feeling we might eventually need a small selection of different cursors to select from for painting and sculpting. Otherwise I doubt we will find a nice balance that makes everyone happy.

That would be the best solution, I guess.

Kinda offtopic, but If something like this is possible to do, I would like to have that choice of cursors also available for the edit mode, with the option to choose the regular arrow cursor too:


This is the cursor C4D uses in "edit mode" and I find it far more precise and comfortable to use than the cross cursor that is currently there.

@ThinkingPolygons (ThinkingPolygons) : That would be the best solution, I guess.

Yes, it isn't just that some people prefer more or less distracting contrast, but also that we all have differing eyesight as well. I think it would be nice to offer, for sculpting and painting, a range of options including no cursor at all.

@ThinkingPolygons (ThinkingPolygons) : ...choice of cursors also available for the edit mode, with the option to choose the regular arrow cursor too

That would be nice too, but you'd have to come with some more unique options, because a choice of two isn't worth the trouble. Maybe we'll have to make a devtalk thread later for ideas...

Will have to look at this again at a later time. This patch relies on D5036, now reverted.

I think it would be nice to offer, for sculpting and painting, a range of options including no cursor at all.

+1 . That is useful to have different options for textured/not textured brushes.
While sculpting, radius circle may be sufficient because user may be more interested abound boundaries of area of mesh displaced than its center.
On the contrary, while painting, system arrow may feel natural like a pencil masking only low right corner.

In sculpt-mode-features branch, there is also a dot projected on surface to be more accurate.
Placing cursor on surface for sculpting or painting meshes textures is also different than drawing on a plane.
Maybe a cursor projected on surface would be useful for Grease Pencil, too, when stroke placement is set to Surface.

@ronan ducluzeau (zeauro) wrote:
This proposal whithout last white pixel seems good to me. IMO, it is what makes it too big and perceived as too intrusive.

Actually that cursor has been described as both "too intrusive" and "too invisible" by different people. LOL.

Small wonder. It depends on your hardware, eyesight and lighting conditions. For me personally (and my eyesight is kind of meh, but not too bad), this cursor would be fine working on my old HD screen by night. It would also be terrible working on my 4k screen by day, where you absolutely can't see a single pixel's worth of anything.

I don't think everyone can be satisfied without a cursor choice.

That said, intrusive is always better than invisible, because the latter prevents you from working while the former merely annoys.