←ALL OPERATORS
> tools

Point Deform

tools/point-deform·v1.5.1
IN:3  OUT:1

The Point Deform works like the Houdini Point Deform SOP: every point of the mesh is captured by the lattice points within Radius (up to Maximum Points, closer ones weigh more), then follows the blended local transforms of those lattice points between the Rest Lattice and the Deformed Lattice. Rigid Projection keeps only their rotation, and N, quaternions, 3x3 and 4x4 transforms and the other Attributes to Transform turn with the deformation, or Recompute Affected Normals computes the normals again. The capture is made once and kept while the mesh and the rest lattice stay the same, so a simulated lattice only costs the deform each frame.

Group limits the deformation to part of the mesh, Mask scales it (optionally by a point attribute), and Mode can split the work into a Capture step and a Deform step. Piece Attribute keeps separate parts from pulling on each other, and Match by ID pairs the two lattices by an ID attribute when the deformed lattice is not in the same point order. A typical use is Remesh to a low-poly lattice, simulate the lattice with cloth, soft body or Nexus, and let Point Deform move the full-resolution model with it. Display Lattice draws the lattice in the viewport.

PAGEPoint Deform
GroupGroupThe points of the mesh to capture and deform. Leave empty to deform all points.
RadiusRadiusThe distance around each point of the mesh in which lattice points capture it.
Minimum PointsMinptsIf fewer lattice points than this capture a point, the search radius grows (up to 3 x Radius).
Maximum PointsMaxptsThe largest number of lattice points that capture each point. Lower values are faster but can show seams.
Piece AttributePieceattribA point attribute on the mesh and the rest lattice: points only follow lattice points with the same value.
Pre-Separate PiecesPreseparateKeeps the pieces apart in the search, so the capture does not visit the lattice points of other pieces.
Match by IDMatchidMatches the rest and deformed lattice points by an attribute instead of by point number.
ID AttributeIdattribThe point attribute (on both lattices) that matches the rest and deformed points.
Rigid ProjectionRigidWhen on, removes the shear and scale from the local transforms, keeping only the rotation.
Enable MaskEnablemaskEnables the deformation mask.
MaskMaskScales the amount of deformation: 0 keeps the input, 1 deforms fully.
Mask AttributeMaskattribThe point attribute that scales the mask.
Recompute Affected NormalsRecomputenormalsRecomputes the normals of the deformed mesh (useful when a Group or Mask leaves parts undeformed).
Attributes to TransformAttribstransformThe direction attributes to transform with the lattice (N, velocities). P is always deformed. Patterns allowed, ^ excludes.
Delete Capture AttributesDeletecaptureWhen on, removes the capture attributes (PdIdx, PdW, PdCnt) from the output.
Display LatticeDisplaylatticeEnable drawing the lattice in the viewport (the deformed lattice, the rest lattice in Capture mode).
PAGECommon
BypassBypassPass through the first input to the output unchanged.
Free Extra GPU MemoryFreeextragpumemFree memory that has accumulated when output memory has grown and shrunk.
IOModified
Ppoint vec3Point position, moved with the blended transforms of the capturing lattice points.
Npoint vec3Normal, turned with the deformation (point or vertex), or computed again with Recompute Affected Normals.
IOCreated
PdIdxpoint int[]Capture: the indices of the lattice points that capture each point (array of Maximum Points, -1 when unused). Kept when Delete Capture Attributes is off or in Capture mode, read in Deform mode.
PdWpoint float[]Capture: the normalized weight of each lattice point in PdIdx.
PdCntpoint intCapture: the number of lattice points that capture the point.
PdRadpoint floatCapture: the radius the weights were made with, used to turn the normals exactly.
Input 0 POP - Mesh to Deform
Input 1 POP - Rest Lattice
Input 2 POP - Deformed Lattice
Output 0 POP - Deformed Mesh