d2h
June 27, 2022 15:58:20
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
June 28, 2022 06:14:25
Use a point deform SOP, it's the houdini equiv of a Maya skin wrap deformer.
d2h
June 29, 2022 10:11:16
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
June 29, 2022 23:12:08
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
June 29, 2022 23:15:01
CYTE
June 30, 2022 04:02:44
For lazy people that don't mind to spend 5 bucks I can recommend the wrap deformed by Momme Carl:
Cheers
CYTE
Liesbeth_Levick
Jan. 9, 2026 14:46:59
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).