PDA

View Full Version : Boolean and other tools fix (possibly)



Jakkar
04-20-2012, 04:55 PM
Ok, after being frustrated for close to a decade on LW tools inexplicably progressively failing to work properly, I think I stumbled across a fix (ok more of a workaround) to many issues.

While working on an object that required some boolean cuts, I encountered the age-old problem of bad polys and improper cuts. Mesh was completely cleaned properly, every step, every recommended procedure followed. No 2 point polys, or single point, NO non-planars, all welded points (even tried the unweld all trick), all tris, NOTHING worked. Still got corrupt poly cuts. And the "possible highly non-planar polys" error message. Every now and then this happens on certain objects. No obvious reason why. I was almost resigned to yet again have to arduously rebuild bad geometry after a shoddy boolean cut.
On a whim, out of frustration, I exported the mesh to an obj, then imported it back in. Lo and behold, the boolean now worked perfectly with no error messages!
Wait, how is this possible? Why didn't I figure this out before? Something is happening on the export, my guess is the point order is re-done from scratch and now certain tools work properly again!
I decided to test it on another tool. Another old tool that routinely fails after 1 or two uses, ROUNDER. This tool used to be very valuable, but hasn't been for awhile. Seems it would work with basic geometry, but the minute you did a bunch of cutting or beveling, suddenly you go error messages along the lines of "a selected point is not inside the selected polygons" or someother UNTRUE statement.
So, I created and object, messed with it enough that Rounder stopped performing, exported to an .obj, re-imported it, activated Rounder, and once again it WORKED!
This has got to be a point order issue yes? There must be something we can do from within Modeler (like Modo has) to fix a jumbled point order to restore functionality to such tools. My guess is this is a workaround for MANY tools in modeler and am trying to find more such examples.
Mentioned this to a co-worker who is in on the Beta forums who relayed my discovery which is already getting some validation, testing, and python scripting to automate the workaround.
Hopefully we will get a similar Modo-like tool soon. But for now I had to share this. Saw nothing about it in the regular forums and I know I would have loved to have discovered this temp-solution YEARS ago, so hopefully this helps anyone who is up against a deadline and pulling their hair out as I have done SO many times! :goodluck:
-Dave Bryant

p.s. - Please reply on this thread if you find that this fixes other tools as well. Hopefully Newtek knows exactly how to jump on this long existing thorn in our backsides...

JamesCurtis
04-20-2012, 05:46 PM
I would suggest that you should also report this as a bug report and supply content for them to try, as well as steps to reproduce it. A script WOULD be nice to use as a workaround for now, but would be better if it were fixed to work properly inside LW's tools as well.

Jakkar
04-20-2012, 05:57 PM
Agreed. And a co-worker who has NewTek's ear in the beta forums has presented it and filed a bug report. I'll let you know what I hear.

imshadi
04-20-2012, 06:14 PM
Booleans don't work particularly well with non planar polys. That's why you have to triple your geometry before you do a Boolean. Unless you are particularly sure one of the elements is planar, it is a good practice to triple. Then, after doing a boolean. Lightwave doesn't merge the points between the original surfaces and the "cut" surfaces. This is good because you can quickly select them as elements, but it means you have to do a merge points before you do a second or third boolean. I have done a lot of boolean operations like this, including breaking objects by hand before there was a fracture tool, and it works very well. But yeah, it might not mentioned in the manuals anymore.

Now, I don't find it very elegant to mix the use of rounder and booleans on objects (once yo do a boolean, your objects are no longer clean), but everyone has a right to model how they want (unless they work for me!). If you really think you are experiencing a point order situation (which I don't think is the case... since obj export actually does the merge points!) then you can always unweld all vertices and then merge them. And if you wanna go medieval on the point order, get a script called Mesh Reknitter, which is as far as you can go with that. But as I said. I don't think that is the case... in your case.

Best!

Paul_Boland
04-20-2012, 06:20 PM
Lightwave's balloon has never been good. Newtek really do need to need to address this. When I consider that the now defunct Caligari's TrueSpace did balloon a lot better then Lightwave does, it's a tick against Lightwave. :(. Come on Newtek, isn't it time the Balloon command WORKED!!

Jakkar
04-20-2012, 07:04 PM
Imshadi,
Perhaps I was not very clear on my first post. I'm well aware of how to boolean properly. Not a noobie asking for advice. Been using LightWave since it was still only available on the Video Toaster and the Amiga. :hey:
I was merely giving a possible workaround for times when the tool does not work even though you have done everything correctly before attempting a boolean. And as I mentioned, sometimes even unwelding and re-merging points does not fix the problem. As a last resort, after all else fails, export to .obj and you will then be able to boolean without error messages.
Nor was I suggesting using Rounder with the Boolean tool. I was pointing out that when using Rounder, it also fails after a time and that exporting to .obj trick fixes that tool as well.
I'm guessing this may also fix other tools too.
Anyone find any?

silviotoledo
04-20-2012, 08:08 PM
I've tried boolean in 3D max and got several errors in the past versions. Not sure about 2010 to 2013 versions.

Lightwave boolean was faster and precise in comparisson to max.

What I see in Blender is that almost equal subdivisions is required to get good boolean operations. Lightwave is better than blender too.

Sometimes I got small errors in very complex boolean operations in lightwave and I have to manually edit.

If it's possible to fix that it would be so helpfull.

imshadi
04-24-2012, 07:24 PM
Question. Is your OBJ trick not equivalent to unwelding all polys and then merging points? Have you tried Reknitter and seen then if it does something of the sort?

I haven't experienced such strong problems with booleans, but I know every once in a while they do weird stuff... There are other tools like nonplanar boolean and booldozer that look pretty amazing, and are at least viable alternatives...

Cryonic
05-08-2012, 11:47 PM
I was trying to Mass Round (from lwCAD) a series of columns that I'd made in a model and found that it kept crashing LW11sp1. Moving the columns to a new LWO and then cutting them back to the original file after rounding a few of them at a time helped to reduce the crashing.
I suspect that the point order was a critical problem with this as each of the columns were a clone of a single column. If I rounded some, then saved, then tried to round another group of columns LW would crash. Moving the unrounded objects to another LWO, rounding a few, moving them back, rounding a few more, moving them back, etc... allowed me to round all of them in the end.

Sensei
05-08-2012, 11:55 PM
Attach object which was causing this here (prior exporting to OBJ)..

"I exported the mesh to an obj, then imported it back in. "

Cryonic
05-09-2012, 12:24 AM
https://github.com/daemonstorm/Lightwave/blob/master/Objects/Temple_of_Elemental_Evil/Temple_of_Elemental_Evil.lwo

That's the main object. The layer is question is third from the last on the first sheet of layers (layer 8). I don't remember if this checkin to github was before or after I named the various layers.

Sensei
05-09-2012, 12:31 AM
8 layer is full of columns..

With which layer I should try boolean operation?

Cryonic
05-09-2012, 08:41 AM
Oh, sorry. I was rounding the columns and doing what the OP talked about made it so that I could do the rounding.