Jump to content

Metaballs And Inner Surfaces


anamous

Recommended Posts

Hi everyone

I'm instancing metaballs on a closed poly surface. They have a certain width. When i convert them to polygons, the resulting object has one outer surface (the thing i want) and some inner surfaces, depending on how far the metaballs overlapped. Is there a way to get rid of those inner surfaces?

What I've already tried:

- intersect VOP, tracing along very long normals, and deleting every point that had an intersect hit. Gave me horrible random results, even with triangles

- connectivity SOP -> attribpromote SOP set to promote the "class" attribute from primitive to detail using the "maximum" method, since i noticed that the outer surface was the first in list - but unfortunatly, in a few cases, this wasn't true.

Any ideas?

Link to comment
Share on other sites

thanks sibarrick

the isooffset thing seems interesting, but i don't quite grasp it yet - are there any guides or help available on that topic, maybe papers etc.? i had to resort to the grouping+deleting method which did the job perfectly fine. again, thanks alot.

Link to comment
Share on other sites

Edward, you cunning old fox! :)

The isooffset sop uses a number of different methods to produced a volume from your data, the default ray intersect is a little like the method you were describing that you tried yourself. It fires rays through your object and and tries to determine what is inside and what is outside. The metaball method I believe treats each polygon a little like it was a metaball, but with the advantage of knowing what is outside and what is inside, based on the normals, so you don't get the extra surfaces on the inside. Just reading the help for the sop should give you a good idea of what it does. After that its generally a case of trying each method to see what gives the best result.

Link to comment
Share on other sites

This problem reminds me of another problem we've had in the past where we received a big model of a city which had two problems: some faces were just reversed (walls, etc) where we wanted only outward oriented polys, and there was a good number of polys inside the buildings that were useless (some building had some interior detail, floor levels, etc).

We had a fast modeler guy just start burning through it because we didn't have a TD available to work on it for a week but my idea was to march around each primitive, calculating the ambient occlusion for each polygon in the face normal direction and then again in the direction opposite to the face normal. This probably would've been done as a ShaderUnwrap operation but perhaps also as a Scatter/VEXSop operation since you have more control over the sampling density per primitive, and then all these samples averaged up to 2 scores per primitive, "ao_normal" and "ao_opposite".

Primitives with ao_normal and ao_opposite both at zero (or very close to zero, with forgiveness for RayBias) could be culled knowing these could never be seen unless you're inside. This I'd think could solve this particular thread's problem.

Primitives would be reversed to face their direction of greatest exposure. (like sunflowers, I suppose).

I never got around to it but I'm sure it'd work somewhat. Anyone want to give it a try? I'm sure it'd be easy to implement in a handful of nodes.. ;)

Cheers,

Jason

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...