View Full Version : can LW or any 3D traditional polygonal application do this kind of Boolean?

09-20-2011, 01:21 PM
Imagine you have something like the attachment in a bigger amount and complexity. I can't find a way to simply Boolean everything in a Union Mode, so that if I have many volumes in a Layer they all get intersected and joined with no interior or floating mesh.

Yes I can put each volume at a time in the Background and Boolean everything progressively, but that just sucks when there are lots and lots of volumes.

Anyone tackled this one?

The only automated answer seems to import the the thing to 3D-Coat as voxels and make auto Retopo, but thats very crude. I imagine that converting them to Nurbs would do too, but I guess if there are too many objects Nurbs can be heavy for memory?



09-20-2011, 02:19 PM
I don't know what you mean by any 3D traditional polygonal application, but AutoCAD can do this in 3 clicks. Hope it helps.

09-20-2011, 02:46 PM
I meant along the lines of Lightwave. I wanted to know if this is something that is kind of impossible in LW only or every app out there has this limitation with intersecting several volumes at once.

Autocad... hm... no joy... =(

thank you though

09-20-2011, 03:02 PM
It sounds like you just want to "skin" the outside of the geometry in question, without all the interior volumes/details that'd result from using booleans to union everything, is that correct? If so, take a look at the LW-builtin "Background Conform" tool for what you want, here's a quick visual reference (http://www.kxcad.net/LightWave/LightWave_3D_9/modeler/modify_tab/transform/background_conform_.htm) to what it does. You also might want to look at "Conform by UV" (http://www.artstorm.net/plugins/conform-by-uv/) as another option.

09-20-2011, 03:07 PM
Well you can boolean that in LWCAD interactively as you draw out each shape.

09-20-2011, 03:23 PM
1.- with LWCad-bool: put all objects in one layer and click on the cutter objects.
2.- put all objects in one layer, select the cutter objects (one poly from each is enough) and use SpBool Union

09-21-2011, 03:36 AM
Thank you for the answers. Ahh when you say LWCaD... I hate you =) Fair enough, but...

Hrgiger in this case I don't want interactivity, it's a Fire&Forget thing.

dee Apart from selecting just one polygon, you seem to be describing exactly what is done with Speed Boolean. It's not bad it's just I have to pay a lot of attention.
If you see the attachment object, you understand that I can't just put the volumes into 2 groups (selection) and boolean, since there might be intersections happening inside each group that won't be calculated. This is a simple example, if you have a lot more volumes and hidden parts it gets harder.

jwiede, that's exactly what I want a one-click single-skin manifold from several separate volumes.
But I fail to understand your suggestion. BGConform snaps points to the BG points. I still have to do the Boolean to get those points and intersections, right? :stumped:

By the way... Boolean + Morphs = BAD
Just so it might help the next guy, I'm posting an example object.
- Try to Speed Boolean>Union with the red surface selected. Bad results right?
- Now try to delete the Morph and Speed Boolean again. It's good...

It's the second time Morphs make me go in circles: first time was with Merge Points + Morphs.


09-21-2011, 12:03 PM
jwiede, that's exactly what I want a one-click single-skin manifold from several separate volumes.
But I fail to understand your suggestion. BGConform snaps points to the BG points. I still have to do the Boolean to get those points and intersections, right? :stumped:
Not exactly. You just need at least as many point as needed to describe the shape, spread across a volume large enough to encompass the set of objects together. Take a big NxN box large enough (and with enough vertices, but not too many more) and bgconform it to the objects in the background and it should "shrinkwrap" itself properly. You'll wind up with any extra points distributed across the surface, but that by itself shouldn't be a problem (you can always select and delete them later). That approach should work, though admittedly I haven't ever tried doing the exact scenario you're describing.

09-21-2011, 12:52 PM
In "normal" boolean operation there is object A and object B, each polygon from object A is checked whether it intersects with something from object B.
And you want not to have object A & B, just one thing. In such case every polygon is treated as object, so there should be done polygon_count * polygon_count intersection operations. Imagine how it would work with f.e. 10,000 polys = 100 million intersection checking.. for 1 mln polys it grows to 1000 billions intersection operations..

09-21-2011, 02:12 PM
jwiede took a bit to get there but I now understand what you mean, thanks. (Jeez I was feeling really dumb for a while). That process doesn't work in this scenarion, but it looks nice to do gift wraps.

Sensei, exaclty. Boolean is A and B. I want all but of course in practice that will mean i will have A B C and D, etc because many polygons are connected and many connected groups don't intersect, so there wouldn't be the need of making each poly a group. What is connected I guess it's easy to determine, but what intersects or not, seems more complicated.

I guess the only way would be via Lscript to attribute each connected mesh a layer or a surface and then go and Boolean A and B, merge, boolean AB result and C, merge, boolean ABC result and D, merge, etc etc.
That would make things much more complex than the above, simpler to boolean.


09-21-2011, 06:23 PM
could you not just write a Lscript that goes thru each layer automatically and union's one layer above another after another working up until there are only empty layers above the last union...and delete each old layer as it goes up from layer 12,3,4,5,6,7,8,9,etc..?

alternatively uses the currently visible layers and starts at the lowest active layer number and does a similar job and deletes old tool layers as an option [or keep old layers of course if you want to]

i guess as lightwave will not know if layer 1 and 2 have overlapping geometry for a union it will need to test the 2 layers to find such data...not sure if lightwave scripting can do a raycast search for intersecting geometry of 2 layers to fully automate this or not.

i suppose you could have it just blindly union and if there's an error where it can't union [2 layers have no overlap currently] it just moves on and tries another active layer...then comes back to ones that had an error to retry later.

09-21-2011, 11:20 PM
Are you intending the fly through this object with all the various intersections or print out a solid model of it? If not, then why create all those extra polygons and vertices by doing all those booleans?

09-22-2011, 12:41 AM
rhino does a good job, but with nurbs, not polies.

09-22-2011, 01:57 PM
cresshead I tryed opening up scripts that might resemble the operations I'm looking for and mish mash something but I failed big time =)
For now I'll stick with "Random Surfacer" plugin to get each connected mesh it's own surface, then repetedly, select a surface and speedboolean, select a surface and speedboolean, select a surf... well you get it =)

Cryonic Because I'm bananas and quick prototyping is not the only thing that requires a manifold mesh.
In my case, I wanted to get a faster workflow in blocking characters in LW without the worry if everything is well modeled, only that the proportions and the volumes are in the right place. Then fire that mesh to Meshmixer or Sculptris and get the details there. Well for someone using Zbrush I guess they will make this with Zspheres. But I think polygons do have something to say in this area, especially with Catmull Edge Weight to rapidly define sharp and smooth shapes. I know, I'm crazy...

archijam Well that will go into the reference folder like Autocad :D

Anyway seems this is going nowhere, ty for baring with me though.
In the process of doing this I even learned how to do Non-Planar Booleans persevering the UVs, so it's all good =)


09-22-2011, 02:51 PM
Bonzai3d (AutoDesSys, makers of formZ) will do it. Original volumes get ghosted, and need erasing afterwards, but new mesh is clean, at least as far as I've tried. Imports, and exports LWO.