Decoupling x-ray and limit selection to visible

Because there are new features that weren’t in the earlier patch…? That justifies new buttons.

Thanks, don’t worry too much about apoligizing to @LudvikKoutny or anybody else for that matter. He likes to talk like he’s coming from a place of authority and knowledge, but last I checked he’s just a guy who started this thread, and then complained enough times in a rude enough way to get it locked.

As far as this:
If they found one additional toggle complicated, what makes you think that multiple toggles scattered all over the Blender’s UI, partially in tools, partially in preferences, will change their mind?

That is his usual way of doing things. Either exaggerating or taking things out of context, because he thinks that it will somehow result in everyone agreeing with him. Careful though, if you try to reason with him he might call you names :grin:

This is what I’ve seen said from @ideasman42 about kio’s patch

This feature seems error prone, since it’s not obvious when it’s enabled and you don’t see the geometry you’re selecting.

Even in the case when the user knows this is enabled, there is some chance for accidents - as the result of the selection may be unexpected, any tools that run afterwards may operate on an unexpected result.

This interferes with edit-mesh drawing, removing face dots so it’s not clear if you’re in face select mode or not.

While it displays as a tool option, it’s always used even when the tool isn’t active (running selection commands from key bindings).

Seeing as we already have toggle-xray (Alt-Z) which enables this behavior while showing the resulting selection, I don’t think this is necessary.

If there are some deficiencies with xray display, these could be handled separately.

This is more a design task.

I do not interpret that as “Select through is too complicated.” or “I like this, but please don’t add any more features to it. Especially if they attempt to address the issues I have with it.”

I see this as saying:

  1. Select through is too accident prone no matter the context
  2. It isn’t clear to the user when select through is on
  3. Don’t just turn off facedots because it’s unclear if face select is on
  4. Xray works good enough, so we can address that in another way if needed

I’ve said this a few times, and I do not mind repeating it, so please bear with me if you have heard it before. I don’t think there’s any convincing to be done with this feature. The devs could have select through if they wanted it, but they either have their own plans for it or none at all. I’ve been asked by a few people in this thread to submit it for review, so I figured why not, I might get some help with a few things that aren’t working right. Not likely to happen but the effort is minimal.

I didn’t bother removing things and separating it into different diffs, because I’d like to hear what, if anything, they like about it.

I don’t like to play internet janitor because that isn’t my style, but it comes with me asking the thread to be reopened. If you want more of a summary than that here you go:

Ludvik wants the original patch that kio made, because it’s good enough as is. I agree with him. I made the patch faster, and he is benefiting from this effort. It doesn’t stop him from complaining about it though. I have added features to give other people things that they find useful, myself included. If you don’t agree with him 100% and do everything he wants, he will act like you are the unreasonable one and try to insult you. Or he’ll say the devs are intentionally ignoring this feature request, which is just a little too entitled and childish for anybody to entertain.

Nothing I’ve done stops him from using kio’s patch, or my patch in the same way, but he just can’t help himself. He is our special friend who you help out from time to time, with the expectation that he will find some way to cry about it. My favorite is when the devs didn’t immediately add the faster version of kio’s patch that I made to Blender, he tried to threaten us all with leaving Blender forever because he has to spend some exaggerated amount of time and effort compiling a couple times a year. Or maybe he did that before the faster version, I dunno, still really funny either way.

When people aren’t having to explain to Ludvik why it’s ok for others to have their own opinions and needs addressed, and that they aren’t mutually exclusive with what he gets out of this patch, it is a useful enough thread.

2 Likes

I definitely agree with Ludvik and Forester here on the simplicity of a single button to toggle the behavior. Quickly scrolling thru the thread and seeing all the options scattered across multiple dropdowns or a fairly large selection dropdowns for the premium selection experience definitely seemed out of place for blender and, imo, made things a lot more complicated than it had to be.

I come from 3DSmax where this is just a simple “ignore backfacing” toggle (As well as a simple toggle in every other popular DDC). So it’s weird that we don’t have the option to that change selection behavior in Blender.

Now this doesn’t have to be a hotkey that people are toggling every second - that might conflict with the current design decision of x-ray being the default for selecting thru your mesh. The devs instead could think about this more as an option to change the selection behavior for a particular user. Just like some users may prefer an Active Tool or Left Click select, they may prefer to select thru their model in solid view. So they would have to make the (small) effort to toggle that setting on before they got the non-default behavior to work, not something they could easily do by accident. So there would be little confusion for users that want the feature, because they need to deliberately toggle it on. Then, for that user, regardless if they’re in x-ray or solid view, they could select thru their model as they would expect (And to be clear: if its toggled off you’d get the default behavior where x-ray is the only way to select thru the model)

The best designs I saw from the thread were by Hologram and AlexeyAdamitsky, Alexey’s version2 being my favorite since it fit with the current UI design. Having a toggle by the selection icons makes so much sense to me. That’d fit right into the rest of the UI design because even with your manipulation tools active, it’d still be where you’d expect it - right where the selection options are:

image

I’d love the idea to fully decouple x-ray from the selection behavior as well. Especially because x-ray seems to be the only option in the visual section that changes they way we interact with visible objects in our scene. That inconstancy was definitely unexpected behavior when I was a newer users to Blender. But regardless, I figure a compromised idea might be a better option with how Icas is presenting the resistance to this feature being implemented in the first place.

1 Like

Now this doesn’t have to be a hotkey that people are toggling every second - that might conflict with the current design decision of x-ray being the default for selecting thru your mesh. The devs instead could think about this more as an option to change the selection behavior for a particular user. Just like some users may prefer an Active Tool or Left Click select, they may prefer to select thru their model in solid view. So they would have to make the (small) effort to toggle that setting on before they got the non-default behavior to work, not something they could easily do by accident. So there would be little confusion for users that want the feature, because they need to deliberately toggle it on. Then, for that user, regardless if they’re in x-ray or solid view, they could select thru their model as they would expect (And to be clear: if its toggled off you’d get the default behavior where x-ray is the only way to select thru the model)

Thanks. This is how it works already, if I’m reading what you said right. Try the build if you haven’t. You click the dropdown next to the xray button, select a type that you want, and then you never use the dropdown again. Unless you want to try a different mode just for curiosity’s sake.

Every version of this patch is just a way of using xray differently. The drag select options add flexibility to whichever selection tool you are using, and the new facedots operator does the same. They are all located where those things are currently accessed from, or the most likely place I think people would look. Open to changing, but not for nothing.

If you guys really want a select through button in the selection type area I’ll give it to you. But it aint a selection type. Putting it there implies it is mutually exclusive with the others (new, add, subtract, intersect, invert) that all work with whichever xray mode you choose.

We got about a month to hash this out for 3.2, I appreciate anybody who helps. Maybe a dev chimes in and picks a direction they’d like to see this go in, but I get the feeling they’re not very interested.

More info if unclear:

Default xray behaviour will always be available to you not matter what mode you are in. Whatever you want to assign to the default xray shortcut, will always do what it does. I only have the xray operator visible now, for the sake of not having more xray shortcuts than needed. If you are like me you had the xray properties of both wireframe and shaded xray as redundant and less functional shortcuts alongside the usual xray operator. In normal blender, they are exposed in Viewport Shading next to the alpha amount, without actually saying there are two different xray properties unless you read the python tooltips for them and happen to notice.

If you don’t want a header button showing you the status of automatic xray or select through when you are in that mode, feel free to comment it out of space_view3d.py. I can show you how, but just give it a try it’s really straightforward. You can either remove the button altogether, replace it with the standard xray button, or something else.

As for the different xray modes:

You want xray to act the way it does already, but maybe you want some more drag select options or the ability to turn off facedots in xray? You don’t need to ever open the xray dropdown unless you want to play with the x-ray alpha amount. I think out of all the things that are different, this has the most potential for confusion because people are expecting it to be in Viewport Shading.

You want to have xray turn on for you, and back off again when finished, while drag selecting? Pick Automatic X-Ray. The xray button will now show, and control, the status of automatic xray. It toggles on and off.

You want to toggle xray without changing anything visually like kio’s patch? Pick header button. It does the same thing. First difference is you aren’t forced into turning off facedots in xray. Second difference is the xray button will show, and control, the status of select through, rather than a toolsettings checkbox.

You want select through, but more flexibility with the different ways you can assign it as a shortcut? Pick select through keymap. Xray button doesn’t change from the default. The downside is you can’t just toggle it on, do a bunch of selections, and then toggle it back off. You need to do it every selection.

Each way has thier benefits, and people work differently. I’d rather have the slightest complication beyond a single checkbox, than not have more options. You pick an xray mode, and that’s it. Or try them out because most people wouldn’t be able to guess what these modes do, and then see what happens. Maybe even read the tooltip.

Things are spread out as little as they need to be. Facedots are where they always were, they just have more functionality since they work in xray mode, while not forcing you to constantly turn them on or off when going between xray and solid (assuming you want them on in one and off in the other).

However you want them to be, it is no more inconvenient than before. If you want them on or off all the time in both? You set it once, and then never think about it again. You want a little more functionality, maybe turn them off in xray once in a while? You can do that now, it doesn’t even affect solid shading, and vice versa. Default facedot behaviour is unchanged, even old shortcuts should you have them, you have to opt into these features.

The drag select options are where you may expect them to be, or maybe they aren’t. They’re in toolsettings. They are collapsable, keymap assignable, and only show you as much as is applicable for your current tool. Want the option to always select intersected edges? What about facedots, fully enclosed, or intersected faces? You can keyboard shortcut between them as you work if you need it. Or just pick one, and never think about it again. Don’t need drag select options to be different than they were before? The default behaviour is unchanged, you have to opt into these features.

3 Likes

Alright boys we got some good feedback

Autoxray looks like it has a real chance of going somewhere. Going to go over everything, and in a week or two make a test build with as much as I can manage. See what you guys have to say, iterate a few times no doubt. Going to be fun having a little more defined choices to make rather than just throwing it all together to see what sticks.

If there’s anything feature-wise that people feel left out on I’ll continue with whatever custom build as I’ve been doing here, if needed.

3 Likes

Just to not drag a discussion into D14816 Select Through, Facedots, and Drag Options, I want to comment on this thread.

@LudvikKoutny
No need to get extreme about the overall design philosophy.
If anything I’d really like to understand more about the core issues, like this point:

If anything, it makes the selection process much more difficult. The idea one would be able to anticipate the outcome of the selection in such case is ridiculous. You just see a point cloud, and you can hardly judge the individual faces all those points belong to.

Because you’re right that it would be hard to judge individual faces. But having the object stay completely opaque would not fix this either. It’s not even a discussion about fixing that issue to begin with.
Imo it’s about making it obvious what you are selecting, even if it’s just a point cloud at some point.
And the core issues that I can see are:

  • Xray needs to be manually toggled (potentually 1000s of times per day)
  • Leaving Xray toggled on makes it hard to read the geometry

Also I want to know if you would actually toggle the behaviour or if box/lasso/circle selecting should always select through the entire mesh?

That’s because the design philosophy is extreme. The “always see what you are selecting” paradigm has been taken to the extremist level of forcing it on everyone even in situations where it’s not beneficial.

The point is that with high poly meshes, not trivial cube, sphere or default monkey without any subdiv levels, having xray on over dense geometry makes it even more difficult to see what you are selecting.

With complex, dense meshes, it’s almost never possible to do the desired selection with just one selection lasso operation. That’s a delusional fantasy. So the common workflow is to first find a good view angle, then select what you want, then reorient the view and deselect what you don’t need couple of times. This does not work with xray off as it selects only the front, unoccluded faces, so many faces get missed.

Here’s an example of the select more first and then deselect workflow I described, on what’s not even that dense of a mesh. It’s just a lowpoly game model of a vehicle for a game, but it’s been modeled using booleans so there are lots of ngons with their face dot floating at random spot in the space.

I will be attempting to select 3 specific parts of the vehicle. The fuel tank, the container and the hatch area at the top. Here’s the select through patch method:

You can see that I have two invaluable certainties when selecting and deselecting:

  • Whatever face I intersect with my box/lasso area is always part of the selection/deselection operation.
  • Whatever face I intersect with my box/lasso area is always part of the selection/deselection operation throughout the entire view aligned volume of the selection, regardless of any visual occlusion.

Here’s exactly the same task, but with Xray:

While the first video took about 45 seconds, this one took 2 minutes and 16 seconds for the same task, due to following issues:

  • I can not just start a selection, because I first need to be aware of which mode I am in. I am very often not in a right mode, because the mode where I can select what I want is not the mode where I can see the mesh the way I want.
  • When deselecting, I can not rely on simply overlapping the part of the face. I need to chase down some semi-arbitrarily placed singular point somewhere in the entire viewport.
  • When switching the mode (once again, need to be constantly aware of the mode in the back of my head), I can not deselect using the face area, and don’t need to find the damn face dot, but now I can not be sure I deselected all I wanted, because occluded selections are missed, so I need to be constantly scouring for the parts of the mesh I missed.

This is the biggest obstacle. The idea that being able to see through the entire mesh when being able to select through the entire mesh is a mandatory must. That it’s not optional. It almost feels like whoever developed the Xray solution has looked at this video, but did not realize it was a satire and took it seriously:

Most humans can abstract and imagine 3D topology in their brain. When I have a car model, and I switch to front orthographic view, I don’t suddenly think that the back of the car has disappeared from the scene, and therefore if I make a select-through selection from the front, the vertices I don’t see are not there.

Yes, this is a large part of the problem problem.

3 Likes

Ok let me update the list of issues then:

  • 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 just as important)
3 Likes

I am still worried it will become interdependent cobweb of options. I believe all that’s needed is to have the current Toggle X-Ray button replaced with the “Limit selection to visible” button, which has popover with one “X-Ray selection” toggle, which is on by default.

Copying the screenshot of the mockup I made above:
image

When X-Ray selection is enabled, the mesh is drawn transparent like now, and the faces are selected by face dots like now.

When X-Ray selection is disabled, the mesh is drawn opaque, and the faces are selected by their entire area.

So the top level “Limit selection to visible” button toggles whether you want to be able to only select visible topology, or not. And the “X-Ray selection” selection toggles whether you want to use the special X-Ray mode for it, which will make the occluded geometry visible, and will allow you to select faces using face dots, therefore not having to re-orient the view to avoid selection occlusion by the topology in front.

This has ultimate benefits:

  • Since “X-Ray selection” toggle is ON by default, behavior of Blender out of the box won’t change at all.
  • Only !1! new UI element is added.
  • Both camps of people get what they need. For those who don’t like it, the existing mode stays (and is default). For those who do, they literally flip a single checkbox and save their startup file.

There have been some scarily overcomplicated ideas above, such as this one:

That’s what I am afraid of.

4 Likes

I think the downside of the Select Through is that when you deselect the elements on the back of the model, you are also in a state where you cannot see the back of the model, which can easily lead to misoperation. Is there any solution?

If you watch the video, you can see me switching to wireframe mode briefly, when I want to. That’s the great thing about the way Kio, the original author of the patch did it. You can have transparent wireframe mode but still have select through selection. In vanilla blender, you can only have wireframe mode transparent when selection is done through face dots. As soon as you disable Xray, and therefore face dot selection, the wireframe mode becomes opaque.

I’ve been experimenting with keymaps and found a way to combine select-through and box select into one button in vanilla blender. Good option for those who are stuck at work without ability to install custom builds:

Setup:

  1. Go into into 3D View → 3D View (Global) category of keymap and scroll down until you find B - Box Select and disable it (not actually necessary if you plan to use other hotkey, but order matters for this):

image

image

  1. Scroll to bottom of category and add these keymap entries:

Key: B
Key_mode: "Press"
Identifier: wm.context_set_boolean
Context: space_data.shading.show_xray
Value: "True"

This forces you into x ray mode while key is held down. Amount of x ray transparency is controlled in viewport shading settings, no change here so set it to 1.0 manually.

Key: B
Key_mode: "Click Drag"
Identifier: view3d.select_box
Uncheck: "Wait for Input"

While holding B you now can left click drag to set selection.

Key: B
Key_mode: "Release"
Identifier: wm.context_set_boolean
Context: space_data.shading.show_xray
Value: "False"

This forces you out of x ray mode on B key release.

Demo:

If you want alternative, more “aggressive” version that forces you into wireframe shading mode instead x ray of current mode it looks like this:

Aggressive method

Key: B
Key_mode: "Press"
Identifier: wm.context_set_enum
Context: space_data.shading.type
Value: WIREFRAME
Key: B
Key_mode: "Click Drag"
Identifier: view3d.select_box
Uncheck: "Wait for Input"
Key: B
Key_mode: "Release"
Identifier: wm.context_set_enum
Context: space_data.shading.type
Value: SOLID

Demo:

Sorry if this chain keymap technique was already mentioned somewhere above :sweat_smile:

5 Likes

Would you want to have select through enabled for every selection method? Or only lasso & box selection? Circle selection would also select through?

I like having the option to select through in any of the three, but don’t see myself using circle and select through. I made it where you have the ability to toggle them individually for each tool, with the option of linking the toggles of 2 or 3 of them together for those who want. I personally link box and lasso together, so that the select through state is preserved when going between them. Circle has the ability to select through, but I haven’t found the need to do so.

1 Like

Thank you, but I’m afraid it’s hard for me to accept this solution, because it’s really hard to notice if I’m in Select Through mode all the time.I may not be able to predict that I need to switch to wireframe mode before the misoperation occurs, which I think is the reason for the misoperation.
I was thinking that when we enable Select Through, maybe we should only see through to the selected elements, but not the unselected elements. Otherwise it feels incomplete to me.
I saw the video, and I agree with you about the face dots.

Of course! Why is this even a question? Who would want to paint select over a polygon just to not have it selected because you missed some randomly placed face center dot?

That would just be ridiculous:

Honestly, the idea that it would work differently for different selection mode is also very scary. I am worried exactly about the ideas like that. Ideas that turn it from a simple concept of one toggle to a confusing affair of having to track the current state of multiple features in the back of your head, such as wherever you are using the right type of selection tool that supports select through. Imagine how frustrating would be to switch to a circle select and suddenly realize you have to change your entire way of selecting things because this singular selection mode doesn’t work the way rest of them do.

1 Like

If you are worried about selecting what you don’t see then the current XRay mode is exactly for you. It would not go away, it would not even be off by default. Why would you be worried?

Please don’t get me wrong, Select Through is a good idea, I like it.
But it doesn’t work well in other software, so I’m worried that it will cause the same problem in blender.
I hope blender has a more reliable design to solve its usability problems.

I still don’t get your point. If you don’t want to use select through, you won’t be forced to, and no problems will be caused. You will just leave it off. The problem is that those of us who don’t want to use Xray and face dots are forced to. I am not sure you understand it completely, but let me say it once again: The Select Through will NOT replace Xray mode. It would be an ALTERNATIVE to Xray mode, which would be disabled by default, so out of the box, Blender would behave the EXACTLY same way as it does now.

1 Like

But I’m the kind of person who wants to use it but can’t use it because of its incomplete design. :sweat_smile: