Houdini 20.0 Nodes Geometry nodes

Point Deform geometry node

Deforms geometry according to an arbitrary connected point mesh.

On this page
Since 14.0

Overview

This node computes 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 higher resolution mesh. In that case, the points of the low-resolution proxy would act as the lattice, capturing and deforming the high-resolution geometry.

The deformation lattice points can be connected by edges. This node uses connected points to find local transforms, allowing for the accurate transformation of rotating models. For rotating meshes, this avoids the collapsed look you might get with the Lattice SOP node’s point mode.

Tips and notes

  • This node works for cloth-like or solid-like models. It does not work for wire models as the transforms can become unstable for that type of mesh.

  • 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, then 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.

  • If an id attribute is on the rest or deformed points, the node uses it in place of the point numbers to establish correspondence between rest and deformed points, as well as store capture point numbers.

  • The Bone Deform SOP, Cloth Deform SOP, and Lattice SOP also capture and deform geometry.

  • You can use the Point Capture SOP to generate capture weights for this node. If you want to use the Point Capture SOP like this, you should set the Mode parameter on this node to Deform.

  • This transforms all attributes marked as transforming, which may slow things down if there are attributes you don’t care about. Setting attributes to transform to blank will transform only positions.

Parameters

Group

Specifies which points on the model (input 1) to capture and deform using the lattice. You can use the arrow select button to the right of this field to interactively select the points in the viewport. If you want to deform all points on this node’s first input, then leave this field empty.

Mode

You can use this node 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 between using one node to do both operations or two nodes to do the two steps separately. The only reason you may want to change this parameter setting is if you have a technical workflow where you want to use the capture information from another node (like the Point Capture SOP) before using this node to perform the deformation.

Note

If you turn off Delete Capture Attributes, then the capture attributes are included in the output. So you do not need to use separate nodes if all you want to do is use the capture attributes downstream.

Capture and Deform

The node will perform both a capture point and deform operation.

Capture

The node will perform only a capture point operation. This is intended for some customization of the weights prior to deforming.

Deform

The node will perform only a deform operation. In this mode, the capture weights are expected to be found in the input geometry. This can either come from a previous Point Deform SOP set to Capture mode or a Point Capture SOP.

Capture

These parameters are only available when Mode is set to Capture or Capture and Deform.

Radius

Sets the maximum distance (in Houdini world units) away from each model point to look for nearby lattice points.

Minimum 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 cause discontinuities in output, but it is usually better than leaving points behind.

Maximum Points

Sets 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 value, the faster the node and the less memory it uses, but the greater the chance of discontinuities in the output.

Piece Attribute

Specifies 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.

Tips
  • You can create a piece attribute based on connectivity with the Connectivity SOP node.

  • Animating the switch between deforming geometry together and as separate pieces can create a tearing-metal effect.

Pre-Separate Pieces

When on, the node virtually moves pieces apart before capturing to ensure they don’t overlap. When many pieces are close together, this can greatly reduce the cost of the capture.

Deform

These parameters are only available when Mode is set to Deform or Capture and Deform.

Rigid Projection

When on, the node removes any shear from the computed local transforms, leaving only a rigid transform. You can try turning this parameter off or on to see how it affects the look of your deformation.

Enable Mask

When on, you can mask the deformation.

Mask

Specifies the amount to scale the deformation by. Deformations are scaled by the combination of Mask and the value of Mask Attribute on any given point if applicable. A Mask value of 0.0 will result in no deformation, while a Mask value of 1.0 will perform the full deformation.

This parameter is only available when Mode is set to Deform or Capture and Deform.

No Scaling

No scaling is applied to the Mask value.

Scale by Attribute

Scale the Mask value by the point attribute specified in the Mask Attribute field.

Mask Attribute

Specifies the point attribute that is multiplied into the Mask and used to scale the deformation on each point.

This parameter is only available when Mask ▸ Scale by Attribute is selected.

Recompute Affected Normals

When on, 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.

If P (point position) is not listed in the Attributes to Transform parameter field, then this setting has no effect.

Attributes to Transform

Specifies which attributes are transformed by the deformation. This field accepts a space-separated list of attribute names/patterns. The default is *, which specifies all attributes. The node modifies vector attributes according to their type information: as points, vectors, or normals.

If this list includes/matches P, the node will also rotate primitive transforms.

Note

The node always modifies P, regardless of whether it is in this list.

Delete Capture Attributes

When on, don’t include the attributes this node uses internally to track the 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.

Inputs

Input 1

Mesh to deform. The model you want to deform according to the movement of points in a point cloud.

Input 2

Rest point lattice. A copy of the deformation lattice points, with the points in their original starting positions. To know how the lattice is deforming, the node uses the difference between this and the current version of the lattice from the third input.

Input 3

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 on the second input to know how the lattice is deforming.

Output

Output 1

Geometry capture weights and/or geometry deformation point information.

See also

Geometry nodes