Decoupling x-ray and limit selection to visible

It works well in most software, that’s the reason why this thread has 400+ replies and been going for 4 years :sweat_smile:

Just think about it logically:

  1. Going into wireframe or xray mode with key press
  2. Activating box select with keypress
  3. Click dragging box select with mouse press
  4. Doing your action
  5. Exiting wireframe or xray mode with key press to see unobstructed result

ALT+ZBMouse DragActionALT+Z

Versus:

  1. Activating box select with select-through with keypress
  2. Click dragging box select with mouse press
  3. Doing your action and immediately seeing result

BMouse DragAction

Now multiply each by hundred or thousands since it’s common workflow. Keypress / time savings are just too massive to ignore.

3 Likes

Yes, I can see that it improves efficiency, which is why I want to use it.
But at the same time, it may also cause a lot of misoperation, so you have to always pay attention to whether Select Through is enabled.

1 Like

I think we can all recognize that there isn’t any doubt that whatever form this takes will not affect default blender. The issue with select through is that it adds enough of an opportunity for unwanted behaviour. This is not coming from somebody who doesn’t get it, or doesn’t like it.

2 Likes

That’s a large part of it, but honestly, if you at least remotely care about modeling productivity, you won’t be selecting using the B key :slight_smile: So it ultimately becomes 1-2 actions. Mouse button click-drag and mouse button release.

True, I got stuck thinking in terms of hacked solution :sweat_smile:

Native version would be faster, so it should be:

ALT+ZMouse DragActionALT+Z

Versus:

Mouse DragAction

Reduction from 4 to 2 instead of 5 to 3 so it’s even faster.

Ok I redirected some more people from the developer task over to this thread.

Going further I want to stress this: Try to be respectful! People here, especially me, will ask obvious or stupid questions but it’s all for the sake of getting to the core of the issues.
No question is stupid and no answer is obvious.
Stay calm and explain your points well and in a precise manner and we will get to implement the feature sooner because of it.

13 Likes

So for the Auto-Xray functionality we can start to compile points we can agree on to create a design task to approve by devs.

Current Issues

  • Leaving Xray toggled on makes it hard to read the geometry (Due to see through wires and face dots)
  • Xray selection behaviour is far more often used ( → manually toggled potentially 1000s of times per day)
  • Xray necessitates selecting via face dots (Selecting via any part of a face is not possible at the moment)

Proposals

Face Dot improvement

  • The face dot overlay should be available both when xray is enabled and disabled
  • The setting should be remembered for both states separately (so it could be off when xray is off and on if xray is on)
  • The setting should change the selection behaviour (Select faces via the center or anywhere). This makes it visually clear where to select (The good thing of face dots)

Auto Xray Toggle

  • An additional toggle to make Lasso, Box & Circle selection automatically use Xray
  • Preferably this shouldn’t lead to different shading/overlays. I only changes the selection behaviour
  • To give at least some visual feedback of what is happening we can visually toggle the Xray button (light up in blue) whenever executing the lasso/box/circle select operators. When the operation is done, the Xray button will toggle off again. This is just to make sure there is no invisible behaviour in the viewport that will result in false bug reports when opening files from others.

Open questions:

  • Should the auto-xray also use the face dot overlay setting that is use in Xray mode? Or should it use the one from when the current Xray setting?

Select Whole Elements

Not sure yet. This could be another overlay setting like face dots? It should be close to each other since they are similar in nature.


Let me know if you disagree and why. Also ideas are welcome, not dangerous.

7 Likes

There is also the option to draw the selection box/ lasso, which is white by default in a different colour (e.g. purple/ blue-ish). Not that it’s necessary, just something worth pointing out. The X-ray selection tools addon by Cirno had this. Think of it as a way to visualise the mode without taking your eyes off of the work area.

If I understand you correctly: should it draw from the current facedots settings in solid mode or, should it draw from the X-ray settings? This, I think, is more difficult than it looks. But, let’s think it over out loud: If it uses my current settings, it is perfectly clear what’s going to happen. If Auto-Xray were to use the X-ray settings — and if I had not used X-ray in the last 30 minutes — I might be confused why my selection settings are different all of a sudden. Since it pops up automatically when dragging a selection, I cannot really change the selection settings unless I go to X-ray and change them there. So, I would thus argue to use the current selection settings. That appears to be more straightforward.
That said, I am someone who doesn’t use facedot selection and favours toggling these things explicitly and leave them be the way I like them to for the most part.

You would think so, but from an overall perspective, Select Whole Elements is a selection property, Facedots are, only to a certain extent, a selection property. They are for also very much a display setting. Mixing the two up seems confusing to me. That’s why I like that @lcas placed these options under the selection tool settings. That way, they are grouped by what they are used for, rather than by proximity to something that is already in the UI (i.e. facedots).
I could also see adding the facedots property to the selection tool, when enabled, it also enables facedot display, if disabled, it unchecks facedot display in the overlays. But then you would still have the option to toggle facedot display on explicitely and use them for non-selection purposes.

1 Like

Face Dot improvement.

Looks interesting if I got this right.
Except the setting should change the selection behaviour - the need for selecting solid shaded faces by area is separate from the need for the ability to detect mesh issues provided by facedots display in the way it works at the moment.
In wire/xray it is different - so area/facedot selection can correspond to facedots display in that modes.

To mention, facedot display should control visual selection/mesh display differentiation between edge mode and face mode as well.
Such differentiation lowers selection contrast making it less detectable.
When facedots are used there is no need in visual differentiation between edge and face submodes, since facedots clearly differentiate them.

Auto Xray toggle.

Looks nice as an optional mechanics.
I think this toggle should influence B and C (immediate access selections hotkeys functionality) as well.


I think that it is related to:

Does that mean providing two separate options:

  • facedots display for solid mode (with faces selection always by area independently from this option’s state)
  • facedots display for wireframe/xray modes (with faces selection by area or by facedot depending from this option’s state)

Or does that mean providing a single option that turns facedots on/off for both solid/wireframe modes simultaneously?
The answer is different for those two ways.
At the moment the only available facedots option controls facedots display in shaded mode (separately from selection by facedots which is okay).

2 Likes

Why would you want face dots when Xray is off? (Assuming that by Xray you mean ability to select occluded faces, not just drawing the mesh transparent). You would get the worst of two worlds. Inability to select the occluded faces and inability to select the faces by their area. Even for the corner case of identifying bad topology of forgotten 0 depth extrudes and such, you probably want to be able to select that bad topology at the same time, which will fail if Xray selection can’t be made, as they would be more often than not considered occluded.

What does “automatically use Xray” mean? Why does it have to be this convoluted mental gymnastics instead of just calling it what it is? Limiting (or not) the selection to visible. It’s exactly what I proposed above:
There’s currently a button called “Toggle X-Ray”
image
This button is gray when Xray is not active, and lights up when Xray is
image

Let’s just change this button to be something along the lines of “Select occluded geometry” and keep it displayed the same way at the same place. Why have some weird automatic Xray concept? I mean would the button light up only for the duration of the selection operation? Would not you want to know how your selection behaves before you make that selection, so you don’t need to perform an erroneous selection, then undo, enable the button and try again? The button lit up, all the time, not only for the duration of the selection is a sufficient indicator of the selection effect.

What remains is then just one more option: Do you want to have your mesh transparent when Select occluded geometry is enabled or not? That would require just one additional UI element, because the face dots are implicit here. Face dots are not useful when the mesh is not drawn with some degree of transparency and/or when you can not select the occluded geometry. If the mesh is not drawn transparently, you can not see which faces the face dots of the occluded faces belong to, and if the occluded selections can not be made, you can not select face dots of the occluded faces, otherwise the OFF state of “Select occluded geometry” toggle would not work as expected.

It’s a good thing that Xray feature is currently inseparable a combination of two different things: face dot based selection and mesh transparency, as one is not useful with the other. It’s just a bad thing that selection of occluded geometry is conflated with Xray feature, and can not be separated.

I propose to use the term Xray for the existing feature which draws transparent overlay of occluded geometry wireframe on top of the geometry and enforces selection of faces using their center face dots.

Then I propose to use term Select occluded geometry, or Limit selection to visible (the inverse).

Once we have the terminology set, and don’t run in confusing circles, I propose to separate these two, so Select occluded geometry is not dependent on Xray.

2 Likes

It’s so nice to see this topic be so busy lately! Hoping the devs can finally spend some time on this and reach a solution!

@lcas Thank you for your hard work with those builds and features. I like the design and where everything is; it’s easy to understand.

I am running into some problems making very basic selections though when using AutoXRay. I loaded factory settings jic and the problem still occurs - AutoXRay is not doing its job in selecting backfaces, unless I misread sth?
AutoXRayBugMaybe

Problem does not occur when using the Header Button mode.

1 Like

@LudvikKoutny most of your questions are answered earlier in this thread, please read them through so we won’t have to discuss things like Auto-Xray, Facedots in solid and X-ray modes etc. over and over and how these concepts are applied in the patch. Also, give the patch a spin, @lcas has gone to great lengths to explain the features. That way you can give a more informed opinion on the matter. There are several reasons as to why its no longer a single button like in Kio’s patch.

Tip: try Ctrl+F search, for things you find hard to grasp and if that’s still the case, do let us know!

After choosing either select through header button, or auto xray, it has to be toggled on to do anything. That’s something I didn’t think about when setting defaults, I’ll just set them to enabled next build. They won’t do anything unless you’re in that mode, so it shouldn’t be an issue if they’re on already, it will just save the extra click for the first time switching to it.

I see what’s also confusing about it. The way to turn on select through header button, or auto xray, is the header button itself, not the “link box” thing. Think of the header button as the checkbox that used to be in toolsettings.

Link box, lasso, & circle is a way for individual control of each tool for people who would like it, meaning they want to toggle select through or auto xray separately for each one, while also saving some clicks for other people who don’t want to do that when switching between different select tools.

If you turn on “link box” and “link lasso”, it will keep the same select through on/off for both without needing to think about it or doing more shortcut presses. If you have all 3 links on, it controls all 3 tools at the same time. If only 1 is on, it won’t actually do anything, it needs at least 2 tools to sync up.

1 Like

I think an obvious visual feedback is very important.
If the visual feedback is not obvious enough, we may forget the state of auto x-ray when modeling.
And then this may happen:
1

This can also happen on deselect.

2 Likes

I’ve made a video because there’s some confusion about what to call the different features. I’ve called them “xray modes” or “select through modes” interchably here and there. In the build itself I label them “select through mode” because it made it easier for the dropdown, can shorten the two select through modes to “header button” and “keymap” instead of “select through header button” and “select through keymap”. It kinda makes sense, but leads to mixing things up when explaining things quickly or in a specific context.

The tooltips try to show you what’s up, but easy to overlook.

First thing in video is Automatic X-Ray. It turns the normal xray on during drag select (box, lasso, circle)

Second is Select Through Header Button, or just “select through”. It acts as if xray is on for selection purposes, but doesn’t change anything visually.

I show what they both do, and how they don’t do anything if toggled off. A rename of one or both is fine with me, but for now that hopefully clears things up.

3 Likes

The solution in my mind is to add an overlay to the X-ray, like this:

But, yes, automatic X-Ray can also completely solve my problem, I like it!

7 Likes

For general selection purposes such an overlay may not be a bad thing at all. Might be interesting to test this in a build if it’s not complicated to add for @lcas. I know lots of people wanted this initially for Kio’s patch as well. This could possibly help those who still dislike Auto-Xray. :thinking::+1:

1 Like

This is exactly what I sent William Reynish as a proposal back when he was in charge of things. His answer was that despite this, one more toggle was still too complicated.

I’d suport this if this meant that only the faces, which are selected are drawn transparently on top of the front faces, assuming users could disable it if they want to. It would not be as obstructive if only the selected faces were drawn this way.

2 Likes

That won’t work for edge selections, so I think it’s out of the question to make it work for faces only.

But @LudvikKoutny, if this selection overlay (aka display selection in front) were to be added, and you were to be able to hotkey select through, then that would meet your needs for Select Through, right?

Current implementation: X-ray dropdown

So then the X-ray dropdown would contain/ do the following:

  • Toggle X-ray
  • X-ray transparancy slider
  • Toggle between selection overlay (aka display selection in front) or Automatic X-ray for selections
  • Toggle Select through on/off

In that case, wouldn’t it make sense to move the X-ray display mode to the other display modes? Isn’t it more similar to wireframe display? I think having both a dedicated X-ray and dedicated Select through button would clear any ambiguous option placement.

New proposal: split select through from X-ray display mode

Select through dropdown

  • Toggle for Automatic X-ray or Selection overlay (aka display selection in front)
    I can see the need to use one or the other, in case X-ray makes it difficult to view the Mesh, as @LudvikKoutny emphasised earlier.
  • This button acts as a Select Trough toggle.
  • Linking select through mode for Box/ Lasso & Circle should be enabled by default, unless someone is specifically against this and has a workflow to demonstrate why (AFAICT this is currently not the case).

Overall, this works for all modes that were in @lcas patch, though keymap requires one to check the modal selection tools in the keymap. So basically, it is mostly a UI change, not a function change.

Selection tool settings

  • Two buttons to enable/ disable facedot selection in solid shading or X-ray
    When enabled, toggles on Facedots
    When disabled, facedots can be toggled in the overlays, but won’t affect selection. In that case, maybe facedots need to be displayed at 50% transparency, so they are lighter to provide a visual hint that they are disabled…?
  • Option to differentiate enable select whole elements for left-right dragging, right-left dragging or or no differentiation for select whole elements
    When the no differentiation for dragging is enabled, the following option appears:
  • Option to select whole elements enable/disable

I think this sums it up pretty well, hope I didn’t miss anything.

1 Like

This is the solution I want most, because it is only used to provide visual feedback, so for me as long as it can highlight the wireframe of the selected elements, I am satisfied.
However, the proposal for automatic x-ray is also attractive to me, so I’d like to leave it to the developers to make the decision.