|On this page|
This node computes the how a point cloud (the deformation lattice) deforms (compared to its original “rest” point positions), and applies those deformations to the input geometry. The node works by having each point on the lattice “capture” and influence nearby points on the model. The closer the points, the more influence (computed using the Elendt metaball formula).
This allows you to animate proxy geometry and transfer that to a high resolution mesh. In that case, the points of the low res proxy would act as the lattice, capturing and deforming the high resolution geometry.
The deformation lattice points can be connected by edges. The node uses connected points to find local transforms, allowing accurate transformation of rotating models. This avoids the “collapsed” look you might get with from Lattice node’s point mode when the mesh rotates.
Tips and notes
This node works for cloth- or solid-like models. It does not work for wire models (the transforms become unstable).
The connectivity is not limited to polygons or two manifold surfaces, making it useful for use with the constraint networks you get out of Bullet or the grain solver.
If you use connected points, the connectivity should be the same in the rest points and the deformed points. Adding/removing edges or changing connections will confuse the node and produce bad results.
idattribute is on the rest and deformed points, the node uses it to establish correspondence between rest and deformed points, as well as store capture point numbers.
Mesh to Deform
The model you want to deform according to the movement of points in a point cloud.
Rest Point Lattice
A copy of the deformation lattice points, with the points in their original, starting positions. The node uses the difference between this and the “current” version of the lattice in the third input to know how the lattice is deforming.
Deformed Point Lattice
The “current” version of the deformation lattice points. The node compares the point positions in this geometry to their positions in the “rest” geometry in the second input to know how the lattice is deforming.
Which points of the model (the first input) to capture and deform using the lattice. Leave this blank to deform all points in the first input. Click the Reselect button to the right to interactively select the points in the viewer.
Normal operation of this node is to both capture points and deform. However, you can use this parameter to have the node only perform one of those operations. There is no speed difference to using one node to do both, or two nodes to do the two steps separately. The only reason you might want to change this is if you have a technical workflow where you want to use the capture information in another node before doing the deformation for some reason.
Note that the capture attributes are included in the output if you turn off Delete Capture Attributes, so you don’t need to use separate nodes if all you want is to use the capture attributes downstream.
The maximum distance (in Houdini world units) away from each model point to look for nearby lattice points.
If a point on the model is captured by fewer lattice points that this, the search radius is increased until the point is captured by at least this many lattice points. This will
The maximum number of lattice points each point on the model can be captured by. If more than this number of points is within the Radius, only the closest points are used. The lower this number, the faster the node and the less memory it uses, but the greater chance of discontinuities in the output.
The name of a string or integer point attribute to use to treat the geometry as separate pieces. The attribute must be present on both the mesh and rest lattice. Points with the same value in this attribute are considered part of the same “piece”. When you specify a valid piece attribute, this node deforms each piece using only the lattice points with the same piece value.
This lets you deform independent objects (pieces) in a single pass. You can create a piece attribute based on connectivity with the Connectivity SOP.
Animating the switch between deforming geometry together and as separate pieces can create a tearing-metal effect.
Virtually move pieces apart (to ensure they don’t overlap) before capturing. This can greatly reduce the cost of capturing if many pieces are close together.
The computed local transforms may include a shear. This removes any shear, leaving only a rigid transform. You can try turning this parameter off or on to see how it affects the look of the deformation. Default is on.
Recompute Affected Normals
Recomputes any normals that are affected by polygons with both deformed and undeformed points. This only matters if you are deforming some points and not others. If you are deforming the whole geometry (or whole pieces), this has no effect, since the normals are transformed.
P (point position) is not in the Attributes to Transform below, this has no effect.
Attributes to Transform
A space-separated list of attribute names/patterns, specifying which attributes are transformed by the deformation. The default is
*, meaning all attributes. The node modifies vector attributes according to their type info, as points, vectors, or normals.
The node always modifies
P, regardless of whether it is in this list.
Delete Capture Attributes
Don’t include the attributes this node uses internally to track point capture in the output. You should leave this on unless you need the capture information for something else, since turning it off increases geometry size/memory use.