[Test Build]Select Through 331 Lite
Uploading this test build before I go to sleep, its a Lite build so no cuda binaries and stuff like that. I’ll update with some screenshots and videos later. It’s mostly the same, just some new buttons in the header. See if you can find your way around without me telling you how it works, shouldn’t be too complicated but I’d like to know. I could simplify things more, but I like the modularity of it, I’ll explain later. It has default settings that make sense, but you won’t get them if you already have a startup file for 3.3, which you probably have. Don’t know what to do about that one except tell you to set them manually the way you want or start from scratch (temporarily) and see what I think makes sense.
If I send different parts of this for official review I will simplify them, but that will come after we check it for problems for a while. For example, I think that the ‘ignore backfaces’ selection would just be a checkbox next to backface culling. It will do what is most likely to be expected, take it or leave it. I will not do anything that streamlined with my build, because I don’t see the point in limiting that much. There’s enough going on that it makes sense for you to have some control over it. I did include 1 thing that is not very useful at the moment, ‘flip direction’ but who cares. In near select all it will do is select what is normally filtered out. For now it’s one button extra, and it might be useful later. If it looks good enough for submitting something, I’ll try to get it closer to what the devs would probably be looking for, shaped by whatever feedback I get from you guys.
Doing all the different selection styles requires more initialization but it is basically free. There’s enough variance that sometimes my build will show a faster time despite doing a few extra bool and int checks.
I left the timing prints on for box and lasso if you want to check that out. Circle is a rapid fire thing, and rapid fire prints are a huge performance hit. I’d rather you get to see what’s up and report any issues without having to keep in mind that circle will actually be way faster when it doesn’t print every time it runs.
Box select times for a cube of 1.5 million verts, windows 11 5800x cpu. The ‘of face’ versions of vert and edge exist because if you only want to use the normal of the vert/edge itself, rather than seeing if they are part of an elible front facing face, you will not select some of the border verts/edges. Just try the two modes for ignore backface edge and vert, you’ll see what I mean.
official blender:
near verts - 0.270556
near edges - 0.389459
near faces - 0.157972
xray verts - 0.185752
xray edges - 0.256259
xray faces - 0.274512
my build, ignore backface:
near front verts - 0.291056
near front edges - 0.532142
near front faces - 0.233752
near front verts of face - 0.288907
near front edges of face - 0.603311
xray front verts - 0.286604
xray front edges - 0.809353
xray front faces - 0.377577
xray front verts of face - 1.358527
xray front edges of face - 1.342028
My goal was a more accurate near select and this will do that assuming you aren’t inside your mesh or have flipped normals. Near front vert/edge/face are pretty fast. Edges are slower so I think they take longer to calculate normals, I’ll check later.
Xray is mostly the same, but the ‘of face’ versions of vert and edge take much longer. This is because it’s in xray so every single vert/edge is selected, so it checks all of them. Half of them are not eligible but they don’t know it until they look at the normal of every single face they are attached to. You can imagine this is a lot of unnecessary work, but it isn’t likely you are going to be dragging over the entirety of a 1.5m vert mesh very often.
The other stuff like near select face center and enclosed circle edge/face aren’t likely to be of any significance time-wise. I’ll check them later just to be sure.