Hiding 3D cursor: use cases

And yet after switching to “only render” I can work with cursor normally without seeing annoying white-red circle - only problem is that a lot of other things get hidden in this mode. And I don’t get the “proper replacement” part. In “only render” everything works properly and I can use 3D cursor without problems, and I do not want any “replacement” for it, just to hide it. Unfortunately, official decision has been made, so “moving on”…

I do not think it will: if I understand correctly, it will change cursor position and it will not be possible to use 3D cursor normally anymore. Second method (if it’s possible), probably will cause flickering of the cursor - I think this would be even more annoying. Third method may work (if it’s possible), but reimplementing all overlay things sounds like a lot of work and probably does not worth it. But if I understand correctly you already have working patch, it just wasn’t accepted, so perhaps you can upload non-official Blender build with this feature? Of course, if you have free time for this.

Lissanro, the first method works like this:

  • Blender draws 3D things in a View3D Region
  • Addons draw 3D things in this View3D Region
  • My addon at the end of its 3D drawing moves the cursor to someplace outside of this View3D Region’s view
  • More addons draw 3D things in this View3D Region
  • Blender draws 2D things in this View3D Region (3D cursor is one of them)
  • Addons draw 2D things in this View3D Region
  • My addon at the start of its 2D drawing moves the cursor back to where it originally was
  • More addons draw 2D things in this View3D Region

So, the cursor position will be “fake” only for a small amount of time, and may only have effect on addons that use 3D cursor position in their drawing, or if scene somehow gets saved during this time interval.
Well, I can upload my test build (Win7 32bit, some features not compiling on my laptop), but the thing is – I’m not going to maintain such “fork” of Blender, and probably no sane programmer would :stuck_out_tongue:

Understandable. Maintaining is hard (as opposed to one-time uploading) and does not worth it in this case.

Then this is probably a good idea after all:yes:.

Well, here it is, go grab and test it: https://raw.github.com/dairin0d/enhanced-3d-cursor/master/space_view3d_enhanced_3d_cursor.py
Be warned that hiding the cursor results in 100% CPU usage (3d cursor movement causes Blender to redraw 3D views - and since I do it on every frame, Blender redraws as often as it can). My laptop quickly starts heating & howling like crazy :wink:

When I see that it’s not causing bugs, I’ll upload it to the contrib svn.

Tried it. CPU load is hardly noticeable on my multicore system with hyper-threading, it’s about 15% on my computer when 3D cursor is hidden. So CPU load is acceptable disadvantage (at least for me).

But if I hide the cursor and then immediately unhide it, I always find it in unexpected location. When the cursor is hidden, I cannot control it anymore: it gets fixed in this wrong location. So effectively this disables the cursor, not just hides it. This only can be useful for people who do not use the cursor or for taking screenshots without cursor (better than nothing of course, but not what I expected). Strangely, even when “only render” is enabled, cursor remains disabled if “hidden”. If these problems cannot be fixed and are expected, perhaps it’s good idea to warn user about these (in the tooltip or addon description).

Another problem with the addon I encountered is that it breaks cursor depth. I think it would be nice if cursor behaved normally when snapping is disabled.

Thanks man :slight_smile: I will not be able to try it out right now but awesome that you have at least attempted to tackle this beast. It seems like this issue will fall into the shadows like many other things that increase usability seeing that the discussion died after Ton is dumbing down its value.

Tried it. CPU load is not that bad on my multicore system with hyper-threading, it’s about 15% on my computer when 3D cursor is hidden.

But if I hide the cursor and then immediately unhide it, I always find it in unexpected location. When the cursor is hidden, I cannot control it anymore: it gets fixed in that wrong location. So effectively this disables the cursor, not just hides it. This only can be useful for people who do not use the cursor or for taking screenshots without cursor (better than nothing of course, but not what I expected - I thought I will be able to use the cursor normally). Strangely, even when “only render” is enabled, cursor remains disabled if “hidden”.

Another problem with addon I encountered is that it breaks cursor depth. I think it would be nice if cursor behaved normally when snapping is disabled.

I was using some non-official build with lots of addons enabled. Now I have installed official build with default settings, installed your addon and cursor hiding works as expected. I can finally work without being annoyed by ugly red-white circle. As far as I can tell, hidden cursor works well (I can create objects at desired location, scale around invisible cursor, etc.). Thank you for your great work!

Glad for being of help ^^ (Hmm, is this a proper English…?)
By the way, at least some people are quite concerned about the CPU consumption, so I’m considering to investigate a variation of method #3.
The 100% CPU side-effect actually occurs because any property change (such as cursor movement) causes Blender to redraw. Since I move cursor on each redraw, it results in a vicious circle of Blender redrawing itself as often as possible. So that means the more complex scene you have, the less responsive Blender will be while the cursor is hidden by method #1.

I agree with Ton. Why? I’ll let my avatar explain my opinion.

I just tested on complex scene, and can confirm that Blender becomes very unresponsive. So currently it is not practical for complex scenes, unfortunately :frowning: . But I’m grateful that at least I can hide the cursor in simple scenes.

Thank you very much for all your effort.

Why force people to switch to “only render” mode to hide the cursor? Why hundreds of options to change the look and feel and zero options to change/hide the cursor? These are rhetorical questions. From my point of view visible 3D cursor is like visible mouse cursor on touchscreen and impossibility to change/hide it is like impossibility to change/hide mouse cursor.

A small note: I have thought about method #3 (reimplementing Blender’s drawing of the things hidden in the “Only Render” mode), and came to the conclusion that it’s impractical:

  • Blender’s drawing code isn’t easy to comprehend, at least for someone not familiar with Blender internals and C/C++ practices.
  • There’s no guarantee that all the information required for exact reimplementation is exposed to Python.
  • Quite a number of things would have to be reimplemented (and also every change to the Blender’s drawing code would have to be tracked afterwards). A maintenance nightmare, in short.
  • Rendering things via Python isn’t fast. It’s quite likely that method #3 would slow down even more than method #1 in complex scenes.
    So, I guess method #1 is our best bet.

By the way, recently I too found myself in a real-world scenario where the ability to toggle the cursor could have come in handy: I had some wireframe models of molecules (with certain chemical bonds represented via armatures), and I wanted to have a clear view on them (in part because I wanted to let my colleagues to investigate them in real time). However, the “Only Render” mode hides wireframes and armatures. The manipulator and the grid can be toggled off, so that left only the cursor obstructing the view/getting in the way. Quite a narrow case, but still :slight_smile:

This is a super useful script for various modeling needs. Highly recommended

The only thing I am missing is ability to snap it to edges.

To the OP - didn’t participate in poll because every option was undesirable.

Please don’t take this personally. This is an incomprehensibly bad idea. The cursor is not simply information but a tool in so many tasks that hiding it is essentially breaking blender. In addition new users would be much more affected because they are the ones most likely to succumb to this argument that the cursor is ‘clutter’ and hide it. In so doing they will most likely learn Blender missing some essential functionality and therefore even when they find out later that the should have left it in view, their habits will already be developed. The cursor does not affect output - I would like to get users, old and new, to focus a little more on output and less on minor details of how the output was prepared.

But the biggest problem I have is that if you are talented enough to do this you could probably be fixing some incredibly useful and currently broken add-on

DruBan, thanks for the articulate presentation of this perspective :slight_smile: I suppose Ton also meant something along these lines.
Personally, I don’t have a problem with cursor always being visible (I kind of just ignore it when I don’t need it, similarly to the “banner blindness” phenomenon) – but since people were asking for such an option, I thought: “why not, if it’s not too hard to implement?”.
Generally, I got an impression that the people who were asking for it know the importance of cursor and know what they’re doing %)

The “hide cursor” option didn’t actually require much effort (similar to a “quick fix”). Unfortunately, I don’t have much free time for anything else lately ^^"

The cursor is not simply information but a tool in so many tasks that hiding it is essentially breaking blender.

Sorry, but thats nonsense. Its all about the visibility of the fadecross. It is not about removing the functionality or the 3D cursor at all. It will still work when it is hidden. You just will not see the visible end anymore then. And when you make a toggle to show and hide the cursor then you have a win win situation.

It is sad that the Devs are still not to convince that it might be a good idea to give the user a way to hide the 3D cursor when they don`t need it. The 3D Cursor is to 99% of the time visibly disturbing me. I am sick of putting the 3D cursour out of sight all the time.

…By the way, does anyone know if (and how) it may possible to disable the poll in the thread and/or rename the thread?

I respect Tiles’ opinion and I will modify my statement to say that it depends a lot on the background color of your theme. It would be nice to have the option of changing the cursor’s color. I find that it’s often hard to see on dense textures so a brighter yellow and blue pattern might be nice! And bigger! I would also like to have it flash when I move the mouse after it being still so I can see it right away!

@OP Isn’t there a button under thread tools when editing the original post for closing the poll?

DruBan, thanks! I was able to change the thread name. But for the life of me, I don’t see anywhere (both when editing the original post and in the thread tools) a button or any other means to close the poll. I guess I’ll have to ask a question in the support section.