PDA

View Full Version : Egg Shell Tool or Plugin??



bcicio
10-24-2012, 10:35 AM
Hi Guys. I'd like to know if there is a Lightwave modeling tool or plugin that will take a complex object with multiple surfaces, strip out all of the unnecessary internal geometry, and leave you with basically the outer skin polys of the object so that it looks the same for rendering purposes but doesn't get bogged down with all of the internal geometry that you don't see anyway.

What I have is a very complex 3D AutoCAD drawing of an engineered facility (the majority of which is various equipment, tanks, blowers, piping, etc.). Unfortunately, the engineer who modeled it in AutoCAD got into it in such detail that he even included modeled bolts WITH THREADS!!! Add to that poor modeling practices as a enthusiastic AutoCAD 3D noob in not cleaning up unseen geometry by using Boolean tools while modeling various equipment parts plus the fact that he used hundreds of layers across multiple x-referenced drawings - and you begin to understand what I am dealing with. Looks impressive as an AutoCAD drawing, but I would like to render it and add some animation in Lightwave.

I was able to import it into 3DS Max and then export it out as a Lightwave OBJ. Bringing it into Modeler wasn't perfect, but better than I had expected. My problem is it gets totally bogged down when trying to delete junk polys or assigning surfaces in Modeler. Simply deleting a single poly can take up to 60-90 seconds for all 4 views to update, and each save (which I do often) takes about the same amount of time. Rotating the view around as I work is also very slow - but if my LW novice brain recalls, I need to adjust a setting so I just get a bounding box as I rotate around it. So it would be really helpful if I could somehow wind up with just an "egg shell" of all of the modeled geometry in this object.

LOL.. But I don't hold out much hope that such a tool or plugin exists. Thanks.

Bill

108744 108745

probiner
10-24-2012, 02:21 PM
I think that goes along the same request I had here:

http://forums.newtek.com/showthread.php?122482-can-LW-or-any-3D-traditional-polygonal-application-do-this-kind-of-Boolean

If I get you right, basically, from many unconnected meshes that intersect, you want to obtain a manifold surface that is the skin between the apparent inner and outer volumes.

I wish we had that... :( Then only thing I know it does this type of merging is 3D-Coat,when you convert a mesh to voxels...

In here we would need something like a plugin that would list every unconnected mesh, then go like:

Boolean 1 and 2 (Result)
Boolean Result and 3
Boolean Result and 4
and so on

I get you, you don't want to personally check if the meshes intersect or not, especially when there's intricate detail, just hit a button and *tada* the shell of the volume.

Cheers

bcicio
10-24-2012, 05:45 PM
Yes, exactly. I am looking for a global way to unify all parts of a model that intersect, resulting in a simplified shell (exoskeleton) of polygons. I can see by your other thread that this topic has been discussed previously and has no easy way of accomplishing this. Thank you for taking the time to post.

Chrusion
11-01-2012, 05:23 PM
About the only way you could do this is manually by selecting the skin polys of all externally visible items, select connected, cut, and paste into a new object or layer. This assumes all the internal geometries are not connected (points welded) to the outer shells. When done, you'll have all the excess crud in the original layer and all the shells/skins in another or another object.

I know what you mean by "enthusiastic" CAD designers and threaded bolts. But in my case, they are required as it's large machines being designed, not an entire facility of machines, plumbing, framing, etc. Since my client uses AutoCAD for 2D and SolidWorks for 3D, I have them export from SW as binary STL and hide all layers containing bolts, nuts, washers, etc. and at a minimum level of detail setting.

Sensei
11-01-2012, 06:38 PM
How can plugin really automatically do this?
Imagine - you have texture that is transparent or partially transparent in some uv mapped areas...
Then plug-in is run, strip everything what is inside, and f.e. window polygons are showing wrong inside..

Idea - in perspective viewport, select all polygons using lasso - they're visible from camera right? Then repeat for different angle, and so on, until selecting everything directly visible from camera, copy'n'paste, or inverse selection and delete rest.

bcicio
11-02-2012, 06:44 AM
@Chrusion - Unfortunately, after converting the drawing via 3D Max export, the polys making up the majority of surfaces are no longer connected. I might have to play with some of the 3D Max export settings to retain better connectivity.

@Sensei - Yes, I thought of using that lasso technique in top, bottom, right side, and left side views (or perspective view with rotation), but the model is so complex that many external surfaces are hidden simply because there are parts lying behind each other in any view. I agree that may work on a simpler model.

I think my only option here to obtain a hollow skin of this model would be through a lot of tedious work, which at this point is probably not worth it. Thanks, guys.

bcicio
11-02-2012, 06:51 AM
@Chrusion - Unfortunately, after converting the drawing via 3D Max export, the polys making up the majority of surfaces are no longer connected. I might have to play with some of the 3D Max export settings to retain better connectivity.

@Sensei - Yes, I thought of using that lasso technique in top, bottom, right side, and left side views (or perspective view with rotation), but the model is so complex that many external surfaces are hidden simply because there are parts lying behind each other in any view. I agree that may work on a simpler model.

I think my only option here to obtain a hollow skin of this model would be through a lot of tedious work, which at this point is probably not worth it. Thanks, guys.

bcicio
11-02-2012, 06:54 AM
Sorry. Accidently reposted.

probiner
11-02-2012, 08:38 AM
Actually the other day I kept thinking about this since it interests me too. I reasoned it out two 2 ways, none accessible today :(


1) Ray-trace the edge of the boolean and somehow make it cut the polygons there. I don't know if there is a plugin to Cut an Object through it's UV Texture like Cookie Cutter (http://pweb.netcom.com/~ghartens/cookie.html) does.
Below an example where I baked an occlusion map in xNormal so that was is outside is white and inside is black. The precision of the edge is not normal unfortunately. But I think if a baker would apply more samples on edges and less everywhere else results could be better. Basically it's just a mask.

http://i153.photobucket.com/albums/s202/animatics/Lightwave/Boolean-Raytrace.png

Probably hard to do. But if this can be made (https://www.youtube.com/watch?v=TwsomsvF99Y&t=1m05s), maybe the inside/outside mask is not that hard to generate.






2) Boolean Macros with the logic of the below pseudo code, that basically iterates over each connected mesh and apply Boolean Union. Probably slow, but no fuss to the user.



Unweld and Triple each Polygon ## Tripling avoids non-planar errors. Unwelding allows to merge polygons afterwards to restore the polygons from the consecutive tripling.

List = List of layers equal to the number of connected meshes

Put each connected mesh in it's own Layer ## Like "Connected Poly to Layer" plugin does

for Cutter in List :
if Cutter == list[0] :
put list[0] in Foreground
else:
put Cutter in Background
Boolean Union
remove Cutter from Background
Triple Polygons


## Getting rid of Triangles and excess vertices

Merge All polygons

G = Point Selection Set of Spoke Edges ( edges used by only 1 polygon in a closed mesh )

Delete (all vertices used only by 2 Polygons - G)



I did these by hand to the object in the image above and worked fine. Maybe when my coding skills are better I'll give a shot at the 2) it with Python. It will be my first "plugin" :)


Cheers