Decoupling x-ray and limit selection to visible

Well, yeah, that one would be also quite important, but I’d say on an equal level. Holding down Alt key while clicking or pressing enter to apply the modification to all objects is a bit annoying, and also frequent, but I don’t think it happens more often than selection of mesh elements when modeling and also doesn’t slow down one that much :slight_smile:

But that being said, it’s really sad that one is taking the ages too, because it would be probably relatively easy fix. I personally would simply invert it so that just interacting with an UI element would always apply the change to all objects (if possible) and holding down Alt key would apply it only to active one. It would literally mean just flipping meaning of a single bool in the code :slight_smile:

At least regarding Multi Object Property Editing I know the team decided that a quick solution would be undesired and that a better, more flexible and robust implementation is in order. There is a design task bringing it on par with the way other software handles it: https://developer.blender.org/T54862

It also means that it’s probably going to take a longer time, probably.
I am very much looking forward to it, though.

Yes, exactly same happened with Kio’s patch. The process is always same:

  1. Take a popular feature request
  2. Say that a quick, straightforward solution would not be enough, so it needs some complex, flexible implementation.
  3. Create a complex design task with as many open questions as possible.
  4. Postpone the task indefinitely because it’s “too complex” and “not easy”.
  5. …repeat :slight_smile:
4 Likes

Here’s a 2.90.0 build that is functional but slower than 2.83
2.90.0 Select Through Inefficient

It’s slower because of the new changes requiring a BKE_mesh_wrapper_ensure_mdata(me); which depending how complex your mesh is, will take 2-3 times as long as a normal xray select does. These times are based on a 2500k @ 3.4ghz so chances are you got something a bit newer and aren’t as bad off.


First 3 are dragging over a uv sphere of 482 verts, followed by 122k, 1.9 million, and finally 7.8 million verts. By the time I’m working with that many verts you can see it’s a bit much at 7.5 seconds vs 3.

@ideasman42 told me before how void mesh_foreachScreenFaceVerts needs to be re-written to use BMEditMesh directly. I was hoping it was straightforward but it isn’t. It’s gonna require some more understanding of what exactly is going on in there. I’ve asked him for some information and resources for this type of work, and while I wait for something in that regard I can at least get started with what I’ve found in some generic C tutorials and a couple books.

I know some of you know about this stuff, so anything to speed along the learning process would be fantastic. Let me know what you did to learn what you know, and maybe you could even lend a hand re-writing @kio 's work.

Any info you can give me would be great, because I’d like to know how to do this myself even if it isn’t necessary because one of you wind up doing it for the rest of us before I am able to do the same.

Once this thing is rewritten I’ll add what I’ve added to it again unless someone needs an inefficient version of Select Through with keymap or header button with some extra facedot options.

I unfortunately don’t believe I have sufficient skill to rewrite Kio’s patch. I do have some C++ experience but only with UE4 C++, which is a walled garden where almost everything is re-made from scratch, and it almost feels like a scripting language. Blender’s C++ on the other hand feels like hardcore C99 with classes :slight_smile:

That being said, I’ve asked Kio to update the patch to work in 2.90 and he did. He messaged me the patch directly, so I’ve asked him if I can share it here too. Once he gives me a green light, I’ll post it here :slight_smile:

It’s also a bit sad that Campbell knows exactly what to do, and it probably would not even take him a very long time, yet he could not be bothered… :expressionless:

1 Like

Thanks a lot, looking forward to it. Let @kio know he’s appreciated! I’d really like to hear whatever he has to say about what he’s done, any recommendations for learning about this type of coding, even if it’s just what to call this specific subject.

I get what you’re saying about it, but I’m just going to assume they were waiting for the improvements introduced in 2.90 to put it back in. Or maybe they don’t really want it because it doesn’t fit with whatever design, but they aren’t totally opposed to it, so they’re waiting for some sort of everyone’s happy solution that also looks pretty, is logically consistent, and is intuative (probably doesn’t exist :wink:)

Here you go! :slight_smile:
https://drive.google.com/file/d/1obdrNMH7r4kXXnrAPpnOAywTWPOgIvlf/view?usp=sharing

And yeah, exactly… They are waiting for some miracle unicorn solution that would address all the artificial problems they’ve invented. So either it’s gonna be on hold for another couple of years, or they will come up with some brutally overcomplicated solution that will add another 5 interdependent buttons, making the learning curve that much steeper :confused:

It’s a shame because if done right, it could be just one additional button, and if done perfectly, the face dot selection could simply be removed altogether and replaced with this, so no added buttons at all, and in fact a few of them actually removed.

2 Likes

It’s the same thing unfortunately. It works fine but it is slow because of BKE_mesh_wrapper_ensure_mdata(me); being needed for 2.90 to see the MVert data.

Was going to take a leisurely approach to learning how to rewrite this, but looks like I’ll be dedicating more of my time to it so I can get this done sooner.

Some learning resources that are specific to this problem would be great.

2.83.6 was released, fixing osomething I had been keeping my eyes on for a while…Thank you for reporting this @LudvikKoutny!

…Would it be doable to make a patch for this new release, if anyone knows how to and has some free time?

I’ve also created an account to add another voice to this issue. I’m glad to use this custom version for now, but maybe The Blender devs should fix it instead of users. I afraid that new Blender version could be without this custom patch and I will work slower(

4 Likes

Is there a build with ignoring backfaces and select through them without turning on x-ray mode?

Alright here’s 2.83.6 with just tool setting. Been a little busy with non-Blender stuff for a couple weeks otherwise woulda been done sooner.
Blender 2.83.6 Select Through Toolsetting

I’d like to make a patch instead of an entire build but I don’t know how to get a git version of 2.83.6. If you go do a git branch -r you’ll see there’s 2.83 release but all it will get you is the 2.83.7 beta. It’d be great if there were two versions for in-development branches. One for the release of the previous subversion, and another for the beta of the latest subversion.

The only way I can provide a half baked patch is to tell you to grab this
https://download.blender.org/source/blender-2.83.6.tar.xz

And replace the relevant scripts with these.
2.83.6 Select Through Scripts

I’m not even going to attempt to make a diff with what I’m working with, because I’m checking out 2.83 release (which is actually 2.83.7 beta), deleting everything, and replacing it with the downloaded source files from 2.83.6 in the above link. It see’s basically every file as ‘different’ between the two, so a diff probably wouldn’t even function.

There’s gotta be a quicker way to go about this, any help?

1 Like

Aww yuss, thank you so much lcas. Kio seems to have gone MIA on this topic, so you and Rawalanche are kind of our only hopes at the moment.

I wish I could help you, but I have no clue on this. Try sending PMs to any devs or any Blender user you know that might have knowledge on this topic of patching? That’s what I usually do with other disciplines to learn more.

Unfortunately the OBJ and FBX exporting gets broken in this 2.83.6 build :frowning: Try exporting anything in those formats - first you’ll notice there’s nothing under the Include tab. Then when you export, traceback errors pop up. Needless to say, this does not occur in the vainilla build from blender.org.

Interesting, I just switched back the lib files for 2.90 and deleted the build so I’m going to go download my own stuff to check it out.

Blind guess, it has to do with having 2 blenders in different locations, which makes the addons act weird. Click the addons tab in settings and see if it says something at the top about conflicts.

No that’s not it, I see the same thing as you. I’m going to assume it’s something about all the weirdness of how I made it use that non-git version of 2.83.6, again because the git “release” version actually gives you the beta for 2.83.7.

I’ll go have a look at how to use the manually downloaded version, because forcing it the other way definitely has issues.

I’m just going to click on make.bat which wants me to grab a second copy of the lib files, which I guess is kindof useful since I won’t have to switch back and forth whenever I need to work on 2.83. Fingers crossed

What a nightmare, still jumping through various hoops, looks like lib issues now with the downloaded 2.83.6, even though it MAKES you redownload them. Just going to copy them over and hope for the best because if not, I’m just going to wait until 2.83.7 is out and hopefully catch it before somebody decides to make it disappear because OH BOY 2.83.8 BETA has to take its place right away.

Thanks to @LazyDodo I now know that git branches work like you would expect. Like usual I just didn’t know about something :upside_down_face:

If you want a prevous subversion of a branch you need to checkout with tags

For example, if you’re a dummy like me you thought that this was all you could do
git branch -r

then pick a branch and checkout
git checkout blender-v2.83-release

BUT let’s say it’s an active branch, and there’s a beta that shows up by default, and you just want the latest release version. Go find the appropirate tag
git tag

And then checkout like this
git checkout tags/<tag> -b <branch>

If you wanted 2.83.6.1
git checkout tags/v2.83.6.1 -b blender-v2.83-release

Can anyone show where exactly option for Select Through is?

Added: never mind, found it in box selection tool.
Thought it also modified backfaces selection, possibility to select through them (ignoring backfaces)…

I’m not sure what you mean by ignoring backfaces but also going through them. You can turn it on to select them (without xray), or turn it off to ignore them. Another feature it has is if you’re in xray and face, and want to select by face area instead of face center, turn it on.

Also I should be able to upload a 2.83 build that works right pretty soon. The 2.90 one is ok, but if you’re working with high poly it’s noticably slow, about half as fast as a normal xray select. Eventually will figure out how to rewrite it to be faster like 2.83

I meant do not select them, select geometry through them, like x-ray is turned on, but with x-ray the simple mesh become completely mess…

I think I get what you mean, you’d like to select by face centers, while ignoring backfaces, but without having to turn on facedots. I don’t know if that’s the only way to accomplish it, but it’s one way.

Like in that video, you don’t want to select the outer faces of the cube, but you do want to select the inner faces of the sphere that you can see. Am I right?

Yes, exactly with a little remark
select through backface faces on sphere only faced to camera and do not select behind.
Because if it will be x-ray without face dots, and you trying to select faces on sphere, you definitely select faces on the other side of sphere…

Like this Addon,
but instead of hiding, just ignore backfaces