anamous Posted September 8, 2006 Share Posted September 8, 2006 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? Quote Link to comment Share on other sites More sharing options...
sibarrick Posted September 8, 2006 Share Posted September 8, 2006 Try the Isooffset sop or fill the interior with metaballs.... Or try using the original surface as the second input to the group sop and group points by bounds using that second input. Then delete those points. Quote Link to comment Share on other sites More sharing options...
anamous Posted September 9, 2006 Author Share Posted September 9, 2006 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. Quote Link to comment Share on other sites More sharing options...
edward Posted September 9, 2006 Share Posted September 9, 2006 Here's my solution. Feel free to convert to an HDA and upload to the Houdini Exchange. NOTE: This method won't work if you have multiple such pieces of geometry. keep_outside.hipnc Quote Link to comment Share on other sites More sharing options...
sibarrick Posted September 10, 2006 Share Posted September 10, 2006 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. Quote Link to comment Share on other sites More sharing options...
Jason Posted September 10, 2006 Share Posted September 10, 2006 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.