Jump to content
amm

Mesh Blend

Recommended Posts

Hello,

just wanted to see how to get something like this in Houdini. Basically it tries to re-assemble a common blend - fillet method from NURBS modeling, but this time, over highly subdivided mesh.  This one could be called a 'distance based fillet with g2 blend' in NURBS modeling world. There are Polycut and Polyextrude SOPs, visible in viewport, Polyextrude is completely reshaped by VOPs and some vector math trickery, usual for such task.
For now, it can handle multiple intersections, but only between two components. One component could be a Merge SOP, anyway. Created parts are just stacked, there is no mesh continuity this time, also I'm not optimist when it comes to getting the smooth, man made, continuous shape around blends, at least without running into methods, usual for NURBS meshing, like custom normals. But, for things like procedurally created trees, I think it should be easier to get the all in one mesh.

 

houdini_meshblend_21march.jpg

  • Like 1

Share this post


Link to post
Share on other sites

VDBFromPolygons then convert back to Polygons or Polygon Soup.

 

Well, not enough for what I want, I'm afraid. By its voxel nature, VDB meshing kills the poly flow completely, making the result unusable for later, un - subdivide  operators in another apps ( Blender, zBrush, so on). If I'm correct, VDB can't do the selective blending, again by its voxel nature - it can do only a 'total' split. Finally it's not very fast, neither memory sparing, for what I want to do with this.

Imho VDB is nice for non organic, irregular, natural things, snow, mud, water, ground sometimes, also for let's call it 'auxiliary' purposes like volume sampling, or making the just global shape without details . But, for anything more defined than that, when it comes to final, rendered shape, I don't think so.

Will see to which level is feasible to try to match the count of points on seams, still keeping the 'enough smooth' blends.

Edited by amm

Share this post


Link to post
Share on other sites

If you want to use NURBS, have you tried using trims (together with project)?

after converting that to polygons, it should preserve most of the edge flow.

Edited by acey195

Share this post


Link to post
Share on other sites

If you want to use NURBS, have you tried using trims (together with project)?

after converting that to polygons, it should preserve most of the edge flow.

well, idea is opposite, to avoid any NURBS surface. It's only a method, well known from NURBS modeling. By the way I feel happy by result, especially satisfied by H Polycut SOP - and not so happy by Cookie SOP, but I was able to avoid the Cookie thing, at all.

For now, just looking how to extend the concept, possibly to non subdivided geometry.

  • Like 1

Share this post


Link to post
Share on other sites

your fillet curves/surfaces are actually quite nice.

may I ask how you created them?

Share this post


Link to post
Share on other sites

your fillet curves/surfaces are actually quite nice.

may I ask how you created them?

Really sorry for late answer, I just overlooked this thread.

There's curve, created on intersection od meshes ( while intersection is created by polysplit SOP, driven by distance, I got by XZY Distance VOP).

Curve is re sampled and converted to NURBS, to get it smooth. From positions on curve, I got the closest point of 'final cut' of both meshes, using XZY Distance, this vector is saved as attribute.

Later, curve is re sampled again to around 4 - 8 times higher res, leaving the saved attribute to be interpolated by Houdini. This helped a bit, to get a smoother distribution of directions.

At the end, there's '6 point bezier curve', created between positions on NURBS curve, and closest point on 'final cuts' on meshes. 3 points, linearly distributed on each side. As final adjustment, there's what usually is called 'point to plane projection', points are aligned again, according to normals on cuts.

Screenshot is the last VOP, which makes final 'reshaping' along point number distribution of Polyxtrude SOP.

All in all, I don't feel very satisfied with this - while '6 point bezier curve' basically is the thing, commonly used for NURBS blends, all the rest is a chain of pretty much arbitrary steps, just in order to get so so smooth distribution, against 'hard' cut on meshes. But I don't see the ideal method, once it works on mesh, instead of NURBS surface.

Edited by amm

Share this post


Link to post
Share on other sites

I have hard time to understand if there is any problem you need to solve or just contemplating about the challenge

however the result is very nice so far

 

the things you may consider to improve/simplify your solution are:

PolyLoft SOP if you quickly need to bridge the cut-open holes with non-matching number of points

Remesh SOP to add detail to it (later you can compute the u value based on distance to each side and compute connectivity correction) - you can of course keep approach which produces quads with nice loops

PolyStitch SOP to fuse the boundaries of bevels to cut-open source meshes

Spline VOP to construct your n-point bezier interpolation instead of more manual approach

Share this post


Link to post
Share on other sites

I have hard time to understand if there is any problem you need to solve or just contemplating about the challenge

however the result is very nice so far

 

Just if you're asking, tried this just to see how feasible is to create it, using generic tools in H. Found it way too slow, compared to specialized solutions in another apps, which is not surprise for me. Of course there's always a room for improvement, but I don't believe it's possible to get something significant. So, left the thing for future and small chance to find an alternative, simpler concept. Nothing new for me - already released a few tools for Softimage ICE, but never even tried if I didn't felt the 200% chance for success. I simply don't feel that, this time. There are other things to do, after all.

 

Share this post


Link to post
Share on other sites

Hello,

I've revamped this thing in H16. Basically it's same, just changed a long distance geometry query to VDB sampling, it seems to fits best. Also added some auxiliary functionalities, like reversing polygons if needed, uv creation and such. It's created by H SOP and VOP arsenal.

Get hiplc here.

How it works: First step is volume sample of VDB representation of another mesh. Sampled SDF is saved as float attribute, zero SDF is used by PolyCut SOP to create intersection curve. Final offset Cuts on meshes are also PolyCut SOP done by spatial query, XYZ Distance VOP and such. Intersection curve is re-sampled down and converted to NURBS, to get as much smooth fillet. From that curve, there's spatial query to cuts on meshes, to get closed points. In next step, curve is re-sampled again to final fillet resolution, also there's new spatial query to cuts, this time only to match the final position, while orientations are derived from low res curve. This is to avoid 'bulging', invoked by linear cuts over polygons. Last step is six point bezier curve, well known as G2 blend in NurbS world, used to loft the fillets, by Skin SOP.

More specific, what it can and can not do:

- it automatically creates NURBS style fillets around intersections of two polygon meshes.

- it wants two closed meshes as inputs, while second mesh has to be perfectly closed (no boundary edges) - will see is there a simple way to improve that.

- it is able to perform fillets over fillets - only in case of closed second input.

- it is able to deal with multiple intersections, or multiple (closed) volumes, let's say created by Merge SOP.

- it creates fillets from union, intersection or subtraction. Default is union.

- it creates UVs on fillets. If there are existing UVs on inputs, H will keep them.

- it aligns normals (or exactly, vertex order) of created fillet, to first input.

- each intersection has to be 'closed', that is, resulting in closed curve, in order to work properly.

- meshes has to be nicely subdivided before inputs. It's just cutting over supplied inputs, it won't create new, smaller polygons.

- it does not work well with sharp curvature - will see is there a way to improve that.

- fillets should not overlap.

- resulting meshes are just stacked, there is no any re-meshing, at this point.

 

mesh_blend_h16a.jpg

  • Like 9

Share this post


Link to post
Share on other sites

That's pretty impressive - the results look pretty good.  Perhaps you could consider uploading that to Orbolt?

Share this post


Link to post
Share on other sites
9 hours ago, Jason said:

That's pretty impressive - the results look pretty good.  Perhaps you could consider uploading that to Orbolt?

Thank you. I've uploaded to Orbolt .

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×