Search - User list
Full Version: Driving a hi-res subdivided mesh with a lo-res base mesh
Root » Technical Discussion » Driving a hi-res subdivided mesh with a lo-res base mesh
d2h
Hi there,

I’m trying to find a way to drive a hi-res mesh to reflect some deformations (skinning, blend shapes, etc.) that have been applied to a lo-res version of the same mesh topology. The hi-res mesh is an exact 4x subdivision of a base character mesh, but with a detailed skin / wrinkle texture blend shape applied to the subdivided surface to provide additional detail.

I tried subdividing the lo-res mesh with a subdivision SOP, and applying the hi-res skin blend shape to the subdivided output, but that puts the subdivision node (and hi-res blend shape node) downstream of my pose / bone deform / base morphing nodes from the lo-res mesh. This means that any upstream changes to the skeleton pose trigger a new subdivision cook, which I’m hoping to avoid.

Is there a more performant technique for driving a hi-res output mesh in this way?

– Dave
lewis_T
Use a point deform SOP, it's the houdini equiv of a Maya skin wrap deformer.
d2h
Thank you! That sounds like what I was looking for – I will give it a try.

In addition to the Point Deform SOP [www.sidefx.com], I'm also intrigued by the Cloth Capture SOP [www.sidefx.com] and Cloth Deform SOP [www.sidefx.com]. It sounds like those could give me a way to specify the mapping from lo-res to hi-res in one location, while actually performing the deformation in another.

– Dave
lucap1
You may want to take a look at the vex functions xyzdist and primuv. In general i have found that they give better results than the pointdeform. Cloth capture and cloth deform are antiquated,use with caution
lucap1
Here's a good explanation of xyzdist and primuv https://www.tokeru.com/cgwiki/index.php?title=JoyOfVex19 [www.tokeru.com]
CYTE
For lazy people that don't mind to spend 5 bucks I can recommend the wrap deformed by Momme Carl:


Cheers
CYTE
Liesbeth_Levick
Resurrecting this old thread to remind people of the existence of the Surface Deform SOP, which has been available since H20, but slipped beneath the radar a bit it seems. It uses primuv()and xyzdist()internally, so it allows the nearest surface position of the deforming surface to deform points, which means is much better suited to the task of driving high res meshes with low res meshes, sim meshes with render meshes, etc than the Point Deform SOP.

Some other cool features it has:
- ability to treat the deforming surface as a subdivision surface, resulting in a smoother deformation
- option to specify a piece attribute
- ability to split the capture and deform steps into separate nodes if preferred

And we have also added, as of 21.0.591, the ability to smooth the influence of the deformation over nearby points with new Blur parameters, which is especially useful the bigger the shape disparity of the input and rest deformer meshes.

As you can see in the attached image, in even the pretty extreme case of using Otto's anatomical bones to deform his skin, the Surface Deform (with the new blur functionality) works much better than either the Point Deform or the Cloth Capture and Deform. Though it is obviously no replacement for proper boneCapture weights (Ground Truth in the image).
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB