Decoupling x-ray and limit selection to visible

Why is this still not addressed? It’s one of the longest feature request threads of this forum section, and 2.90 is around the corner, yet silence everywhere. I’ve been using Blender for almost 3 years now and I am still not near the efficiency of my previous modeling software simply because of this solitary issue.

It’s just an incredible source of frustration on daily basis. Constantly playing the Find Waldo game with face dots for each face if I want to select them, and pressing myself to death with Xray button toggle because I want to see the object I am working on clearly but be able to select through at the same time. Add the horror of the selection method constantly changing between face are and face dots and you have perfect conditions for hell. Satan himself would be jealous.

This is a prime example of a single unfixed design flaw can turn someones daily joy of work into daily misery.

6 Likes

I did not notice the link with the compiled patch from you. Thank you so much man! You’ve saved my sanity! I no longer have to spend ages wrangling the xray and changing selection in face an edge mode. I can finally model quickly and do simple things like this knowing that my selection will always be reliable and I don’t have to press anything:

It’s still quite shocking such basic things are impossible to do in vanilla Blender.

It’s just so much fun being able to do absolutely essential modeling tasks fluidly and seamlessly without constantly mis-selecting stuff, squiting to find positions of face dots before actually selecting faces or having to pick between being able to select or being able to see my model cleanly without transparent overlay:

Seriously. This just goes to show what a BS nonsense the “you can only select what you see” mantra is.

7 Likes

Yep. Just tried the build above and that is the version I’ll be using for the forseeable future, until this issue gets addressed. Night and day difference honestly even on a simple sphere.

You’re welcome, and @kio did the real work I just changed it to work with the keymap.

Here’s an updated build:
2.83.3beta Select Through Keymap Xray Facedot Overlay

Only difference in this build is the xray facedots is now in the overlay settings inside viewport rather than a toolsetting. That and I wanted to update for 2.83.2 when it happened. Right now splash says 2.83.3 beta so I guess I missed it, but that’ll have to do. Pretty cool how it will show that it isn’t the release build but a modified version.

Check it out, the way I put xray facedots in the Overlay Settings could use some fine tuning I’m sure, but it’s pretty minor thing that I’m not even sure I would ever use.

Wanted to get some stuff in this one for active object xray, like @Tanagashi suggested, but I’m still figuring that one out. Probably shelve that idea for a bit and get some basic understanding of C & Python because at the moment I’m just kinda scratching my head wondering why stuff doesn’t work right :thinking:

Going to check out Youtube for C and Python courses, and in the meantime get started with some kind of thread and videos about how I’ve done things for anybody interested.

2 Likes

Thanks again. I am confused though. This is 2.83.3b, right? Since I have to do an actual work I really can’t afford to rely on beta versions, even for minor releases. Will you be making 2.83.3 build when it’s out of beta so I can check back here? :slight_smile: Thanks!

1 Like

Yeah I’ll update it when the final release happens, this is my way of following through with what I’d said about updating it for 2.83.2. It’s all under the 2.83 release branch so I don’t know if there is a way to actually build for 2.83.2. Didn’t update until earlier today, 2.83.2 said it was planned for the day before, so maybe there was some small window where the splash said 2.82.2?

I’m gonna see how you update this
https://developer.blender.org/D6322
so people can see exactly what’s going on, maybe help me improve any issues with it. Dunno what the etiquette or whatever is for doing this when I didn’t start it, and it says “abandoned”

1 Like

I think you mean @kio Kio, not me :slight_smile: Kio made the patch. I just complained a lot to push him to do it :smiley:

I am also a bit confused about your recent post on the developers portal. You mention something about the keymap, how you use this along with the old mode using keymap bindings. I don’t think it should ever be designed that way, since it’d just occupy obscene amount of different hotkey combinations. There should be just one global switch which toggles if you are using select through or not. That switch is already there, but it also changes selection mode to face dots and enables Xray in vanilla Blender.

But maybe I just misunderstood what you mean. My point is that the way 2.83.1 version you compiled a few posts above is working exactly the way I need, so I just hope that won’t change.

Anyway, the bottom line is that face dots are completely pointless as a simple display thing if they are not accompanied by a change in selection methodology (that faces are selected by encapsulation of face dots instead of intersection of the face area). In the same manner, face dots are completely useless without “select through” mode as when you are not selecting through, face dots just make selection worse and don’t add anything in reward.

So ultimately, face dots need to be a sub-mode of the select through, where you can use face dots with select through enabled, but it should be impossible to use face dots without select through disabled. This unfortunately adds another layer of complexity, because in pure select through mode, Xray display (transparency) should be decoupled from the select through toggle, but in case of face dots, it should be tied to the face dots select through mode as face dots are pretty much useless without seeing through the mesh.

IMHO face dots should just die, but other people don’t share the same idea, so unfortunately the tons of corner cases they introduce need to be sanitized one by one :frowning:

EDIT: So using the 2.83.1 version of your built, there are some oddities:

  • The Xray face dots mode of the select tool actually makes sense in theory, as it enables face dots but ONLY in Xray mode, which is perfect. There’s no point of having them without Xray.
  • The first problem is that once they are enabled, they are still not used for selection.
  • Second, big problem is there now doesn’t seem to be any way to actually turn select through OFF. So if one wants to select only visible faces, it’s not a possibility.

Solution to that would be following design:

  • Select through should be a top level switch. It probably should not be part of the select tool specifically.
  • Face dots switch should be child switch of select through. It should not be possible to have face dots enabled while select through is disabled.
  • Enabling face dots should force Xray ON, since there’s no point of using face dots when not seeing faces and their dots on the back of the mesh.

This would give us following options:

  • Being able to select only visible faces Xray OFF
  • Being able to select only visible faces with Xray ON
  • Being able to select through with Xray OFF
  • Being able to select through with Xray ON
  • Being able to select through using Face Dots with Xray ON
1 Like

Thanks, I didn’t mean you, @LudvikKoutny, or anyone specifically. I was just speaking casually. What I meant was “I’m going to see how one would update this”.

Don’t worry about the keymap, or it changing from the way it is working in the build you are using. I made it that way from the start for convenience for myself and anybody who wants access to both modes without needing to click on something every time.

All I did was make it where it is on by default. That way, anybody trying out the build will just see it in action instead of me having to explain, “OK, now before you start, go into the keymap and blalbalba… then five minutes later you will finally get to see what’s different.”

Here’s what I’ve done, just go into they keymap and add 1 entry to box select to see what I’m talking about.

Keymap->3D View->Mesh->3D View Tool:Select Box

Click Add new, and expand that “none” entry. Where it says “none” again right below that, change the name to “view3d.select_box”.

Change where it says “Keyboard” to “Tweak” and pick a modifier that isn’t used (for the default keymap ALT is available)

You’ll see a checkbox under the usual “Wait for input” that says “Mesh Select Through” UN-check it

Go do something, you can select-through like you want, but if you ever need to select visible, you can just hold alt and drag.

If you’ve managed to map ALT, CTRL, SHIFT, and all the others for box select already I guess you’d have to figure something out. Pick whatever you want, and that’s the point. It’s up to the user. If people really want both a keymap and a tool setting somewhere it’s probably possible but I don’t really see how it’s going to make sense in two spots.

Here’s a screenshot, just 3 more entries to get Select-Visible with New, Extend, and Subtract selections. Not necessary unless you want both, can just edit the existing keymap entries to match whether you want to always select through or select visible.

Face dots are a weird one, not sure what to do with them. Don’t really like them either but don’t know anything better. They can be useful in different contexts so people who like them can have them, people who don’t can turn them off entirely, or xray only.

Like you’ve noticed the implementation and all that needs a lot of work. I just don’t know how to get all of that done. The most important thing is for it to work for people who like them still. Turning them off in xray is just a supplementary thing to do.

Turning select-through off in xray mode doesn’t work right now, because if you can “see” the component, it will select it. So I dunno what to do about that, or if it was ever a thing, where you can select near faces only even though “hidden” ones are visible behind it.

Going to check it out of course, kinda fun, learning a bit (I hope) while figuring stuff like that out.

2 Likes

Got a new build
Blender 2.83.3b Select Through Keymap Override

Has some new features as requested from over here:
https://developer.blender.org/T73479

What’s new:
I have a button in the header next to xray for toggling Select Through, using the icon for OBJECT_HIDDEN as a placeholder.

On that Select Through button there’s a dropdown with one checkbox called ‘Keymap Override’. It gives people like me the convenience of having select through in the keymap, while giving everyone else the button option.

Xray Facedots has been cleaned up. 1 checkbox for solid and 1 for xray.

Select Through can be disabled in Xray now. Pretty sure that wasn’t the way it was before. This is a consequence/bonus of having both keymap and a header button to control Select Through. Or at least the way I implemented this behaviour made it happen unintentionally. It seems that Selection and Xray have been even further “Decoupled” to borrow from the thread title. Whether this is something people are wanting is something I’m interested in hearing

Haven’t done anything for Area/Facedot selection options yet. Will look into it. No promises of course, not sure where that takes place, but I’m pretty sure that something @kio originally did has an effect because you can select by area in xray. In the official build you can only select by facedots in xray.

Check it out and let me know

By the way, I think I forgot to add circle and lasso functionality with the previous build. Found that out when testing this latest one before doing a final compile.

1 Like

This one is really weird. Select through doesn’t work at all. Non xray mode shows face numbers intead of face dots. Select through itself is nowhere to be found. Sometimes it select visible faces, other times it doesn’t. To me, this is just completely broken build.

In general, I am very disappointed about this direction. The best way to kill this patch and make sure it never happens is to come up with complicated UI. The main reason developers are reluctant to add is it more complex UI, yet what you are describing seems like an extreme complication of something otherwise extremely simple.

Please don’t submit this as a patch. It will do way more harm than good in this state.

In fact, best features are those that remove buttons, instead of adding them. It’d be great if this was case even here, but unfortunately there’s still a large group of people who fail to realize how much time they are wasting with face dots, so they unfortunately have to stay.

I am posting again the UI mockup I’ve posted like 1000 times already:
image

ONLY change from the UI standpoint compared to vanilla blender should be that the Xray button gains a popover with a single bool checkbox under it. That is all. That’s how much UI should complicate. No other buttons or toggles should be added anywhere in the UI, that includes tool properties or keymap operator properties.

The rest needs to happen on the code level:

  • The Xray button (Two overlapping squares) changes meaning from “Toggle X-Ray” to “Toggle select through”.

  • The sub option bool checkbox, named X-Ray selection toggles Face Dot display, Face Dot based selection (instead of face area selection) and Xray transparency (mesh transparency)

  • When “Toggle select through” header button is disabled, the X-Ray selection checkbox is frozen and can not be enabled (No sense to have face dots when not selecting occluded faces)

  • When “Toggle select through” header button is enabled, but X-Ray selection checkbox is disabled, we have the regular select through we all want. The mesh is not drawn transparent, there are no face dots, and faces are selected by face area.

  • When When “Toggle select through” header button is enabled, and X-Ray selection checkbox is enabled as well, we get current legacy behavior. The same way it works in vanilla Blender when Xray is enabled. The important beauty of this is we can have what we want without changing default behavior of Blender, which makes this patch very easy to accept. Only thing one who desires select through workflow needs to do is to uncheck that one child checkbox in the popover.

We can’t afford to burden people who just want to use the feature without having read 150 post long thread with complicated UI. Also, no parts of this should be in tool, even in keymap settings of the tools. Simply because it would make it extremely hard to find for new and even average users.

I’ve been loosely following this debate here, and I agree with your sentiment here: The simpler the UI change, the better.

However, I think your proposal has a major drawback, as it changes a functionality of an existing feature. The current x-ray see-through button would become a selection mode button. I for example use this x-ray feature for other things besides selecting (e.g. aligning things visually when there’s stuff obstructing the view. Sometimes the x-ray is more clear than the wireframe mode).

I’d have no problems living with that change, but I’m just saying that you’d have even better chances of getting the patch accepted if it didn’t change existing functionality/workflows.

That is just misunderstanding. The problem is that right now, that button is broken, as it mashes two completely different things together. Selection method and viewport display drawing.

But the Xray display drawing mode itself will of course remain independently available on it’s original location here:

What people often don’t realize that the header button acts as a combo of two things. As a shortcut to enable this xray drawing property which is also found in separate place in the UI as displayed above, and also selection method, which is, jarringly enough, not found anywhere else in the UI.

In my proposal, this Xray viewport shading option would be availble in the Viewport Shading popover in the same way it’s been up until now, with the exception that enabling Xray mode sub-option of the select through header button would also force Xray viewport shading on.

So if you have Xray viewport shading off, and you enable Xray selection mode (Should perhaps be called Face Dot selection mode for more clarity) it would also automatically enable Xray viewport shading. And if you then disabled Face Dot mode, it would turn the Xray shading back off.

If you had Xray viewport shading on, and enabled Face Dot mode, it would not change anything, and if you then disabled Face Dot mode, it would disable Face Dot based selection but keep Xray on the way you had it before.

I hope this makes sense.

I just downloaded my latest build and extracted the 7z to see if something was up with the archive or upload. Works the same.

As far as seeing face numbers, that’s probably “Indicides” inside the overlay dropdown. It’s below where xray stuff is. What’s werid I also had them turn on, seemingly on their own, last week when I was testing different ideas with select through.

Should be working though, and yeah I get it about not adding buttons to what is already a fighter-jet cockpit. Just trying to give the “visual indicator” for the people who want it.

Going to bed, so I just kinda skimmed through the suggestions you had. I’ll go through it tomorrow, and make a video showing how the build works (or is supposed to anyways :wink: ) to see if I can figure out what’s up with it on your end.

I had an idea to just post the relevant scripts, it’s only 1MB. Would be a way to see what I’m doing without the formality of a patch / diff update. Probably not supposed to do that until the whole thing is “finished” so it might make sense for anyone that doesn’t want or need to grab the build.

I understand what you mean, that under the hood it does two things. But for the user, that x-ray option in the viewport shading panel also enables face dots, so the functionality is consistent in both places. At least for me it’s always felt primarily like an x-ray shading button, and it just happens to also enable face dots in edit mode. So for that reason I wouldn’t change that button’s behaviour to see-through selection, but that’s just me. Others might feel differently :slight_smile:

With my proposal, it’d be doing the literally exact same thing by default, unless you explicitly went into the popover and disabled that child checkbox. In other words if Blender got this change, literally nothing would change for you from the UI standpoint, except that next to that button, you’d see a little down arrow button indicating there’s a popover. But unless you changed something, Blender would be behaving in 100% the same way.

I get that. What I meant is that your proposal would make it slightly more cumbersome to toggle between x-ray/solid shading if I prefer to have selections set to select-through. I’d prefer to have those two things (select-through and x-ray shading) completely separated, so that my selection mode doesn’t effect my x-ray shortcut, if you understand what I mean? I’m sure I’m not the only one who uses x-ray shading for other things besides selecting.

To be honest, no, I still don’t understand :slight_smile: I mean my proposal would give you exactly waht you said:

I am not sure if you currently toggle that header button with a mouse click or keyboard shortcut, but if those two were separated, then you’d have to have two different shortcuts anyway.

So if you had one shortcut for select through, which in my case would be the button which is currently assigned to Xray, then you could also have another shortcut for Xray transparency, which you can easily assign, like this:
image
…by just right clicking that checkbox and selecting assign shortcut.

It makes sense to have Select Through button in header, so that you can immediately visually identify if you are in select through mode or not, as that may not be otherwise obvious without selecting something first and then seeing the selection behavior.

In case of Xray transparency though, it doesn’t make much sense to have separate button for that at the top header level, since toggling that affect if your entire scene is drawn transparent or not, so that itself becomes a visual indicator.

Very cool! Thank you so much for working on this. It’s a long overdue addition. :smiley:

Two questions regading this:

  1. Will this be brought into the main branch of Blender eventually or is this a separately maintained thing?

  2. Would it be possible to include a viewmode that makes selected polygons semi-transparent visible through solid geometry? This is something I still miss from Modo’s viewport because it lets the user see if they actually selected backfacing geometry in solid mode. It also helps tremendously when extruding faces inside a solid mesh, for example.
    As X-Ray shading might not be necessary any more it’s good to know whether backfaces are selected immediately in solid mode as well.

Hi,

for anyone interested, I’ve compiled non-beta, release version of 2.83.2 with the original, unaltered version of @kio 's patch without any messing with the UI. So if anyone wants original, clean version of the patch with up to date stable Blender version, here it is:

The select through feature is exposed as a “Select through” checkbox inside Select tool (Including lasso and circle mode).

NOTE: It’s been compiled with CUDA libraries, but not with OptiX, so keep that in mind.

4 Likes

Here’s an video update, mostly for @LudvikKoutny to clear up whatever was confusing about this latest version.

Got a new mode called Automatic that will basically replicate the standard Blender behavior for people who want that.

Far as the UI, you can change that to your heart’s desire without compiling, I’ll go through all that stuff later once I’m done with this.

Far as I’m concerned what I’m doing is a temporary solution for 2.83.3 once it’s released. I’ll be throwing a patch up there and if they like it enough they might include it eventually.

But I imagine the dev’s will figure out something on their own. They know what they’re doing and have a better grasp of the big picture, UX kind of stuff.

What I’ll probably end up doing is making a couple different versions. The opinions about all this are pretty divergent already, and it’s mostly about minor stuff like where buttons go and whether facedots should be nuked from orbit :stuck_out_tongue_winking_eye:

This is something I’m not even sure what it is, I’ll have to watch some modo videos or something. I’d say it’s definitely possible, but just from what I am imagining what it actually is, it would be a while before I could figure it out. Will look into the same way I’ll eventually revisit single object xray.