I think you’re right about lite not having subd, because the lite build I made of just blender with selection time prints doesnt do it either.
For the backface test to work without going into xray you have to use select through as well. Near select just does what it does, it doesn’t actually care what it can “see” as far as when backface culling disappears something. It just cares what it hits first, and then stops without going further.
Looking at a few things, mostly wanted to see about adding single click select to ignore backface. Probably not going to happen, but I wanted to check it out. It would need to re-run itself until it either found a vert/edge/face that is facing the viewport or ran out of things within the selection radius.
After that I’ll show the reason I made ignore backface, to get an idea you can see this
edit-
Here’s my primary reason for doing the ignore backface, though I’m hopeful that the other benefits of it in xray + select through are useful for other stuff. I’m not familiar with any of that but I’m always looking for new things or new ways of doing them. I’d like to see it in action if anybody feels like demoing it, whether this build (once I upload the full thing in a bit) is capable or if somebody can show something else doing what is intended.
Anyways, the problem I have with near select is how it grabs other stuff you wouldn’t want it to. I will call this ‘overdraw’ because from what I’ve read -
Selecting faces in edit mode uses OpenGL to make a drawing that maps all faces within the rectangle.
Some pixels of faces that should be 100% occluded are still drawn. This is because these faces share a same edge as the face that occluded and the threshold between drawing and not the face is hard to distinguish.
I can’t think of an efficient solution to this problem.
I will be using ignore backface for all of my near selections I think. It isn’t 100% perfect, but I find that a threshold value of .15 is realiable enough without affecting what I call ‘underdraw’ which I’ll cover in the next section after the video. I had set the default for threshold to .10, but I keep catching a stray face here and there so I’m going to set it at .15. Here’s a demo of the occasional stray face with .10 theshold, the likelihood of this happening at .15 should be very low, and you can always tune it to your needs in any given situation.
What I call ‘underdraw’ is the opposite situation that you get with near / bitmap selection. I cannot offer anything to fix this issue, but maybe a rewrite of the viewport with vulkan would fix this, either directly or incidentally. Not happening anytime soon though I think, because last I read nobody is assigned to it. But at least this is not made worse with a reasonable ignore backface threshold. A demonstration, you can see that whether ignore backface is on or not, the same faces are not being drawn aggresively enough for bitmap select to “see” them.
Depending how dense your mesh is, you will have to go looking for overdraw and underdraw to have an issue with them as long as you set a reasonable threshold, again, 0.15 is what I’m liking so far.
The alternative is living with what I consider a very unrealiable near select:
None of what I’ve done would be possible without the help and advice I’ve recieved from developers and contributers when I run into trouble that I can’t figure out. In hindsight some of it is braindead stuff, but other things like quaternions I may never really wrap my head around. It is interesting to me though, so there’s a chance I can take the time to understand them.
Going to upload a full build this weeked I think. I will put off any new stuff until at least 3.4. I do think I could at least fake a single click selection that ignores backfaces by using circle select and telling it to only select one element inside of its radius, and maybe not rapid firing too.