Houdini 21.0 Nodes APEX nodes

geo::Lattice 2.0

Deforms geometry based on the reshaping of a control lattice.

On this page
Since 21.0

The input geometry is deformed in the same way that a simpler control lattice deforms from its restgeo position to its deformedgeo position. The deformation of the input geometry is computed by finding the relative position of the input geometry within the rest lattice, and moving its points to the same relative position within the deformed lattice. The falloff port controls how far beyond the extent of the lattice a point may sit before it is no longer deformed. Points on the boundary of the lattice use their deformed positions, and points at the falloff distance use their input positions. Points at a distance between the two are linearly interpolated.

Note

The control lattices must have the specific topology produced by the Bound SOP. The values of the Divisions parameter on the Bound SOP are the same values used for the divsx, divsy, and divsz input ports. The rest lattice must have equally spaced divisions.

The geo ports of this node are in-place ports, which means that the geometry is updated without creating a copy.

Lattice types

interptype

Lattice Type

0

Linear Lattice

The input points are deformed linearly by the lattice.

1

Bezier Lattice

The input points are deformed by a weighted combination of all the lattice points. The lattice points near the input point have more influence on the deformed shape.

2

NURBS Lattice

The input points are deformed by a weighted combination of a subset of points in each lattice direction. The number of points that contribute to the lattice’s deformed shape is determined by the ordx, ordy, and ordz port values. For example, if ordx is 3, then 3 yz-planes of lattice points are used when deforming the input point.

When the order of the lattice is low, the input geometry deformation closely follows the lattice deformation. As the order increases, the resulting deformation is smoother but has a tendency to drift further away from the control lattice.

Inputs

*geo: Geometry Required

The input geometry to deform by the reshaping of the control lattice.

restgeo: Geometry

The control lattice’s rest shape.

deformedgeo: Geometry

The control lattice’s deformed shape.

divsx: Int

The number of divisions the control lattice has in its x-direction. This should be the same as the x-component of the Division parameter on the Bound SOP that is used to create the lattice.

divsy: Int

The number of divisions the control lattice has in its y-direction. This should be the same as the y-component of the Division parameter on the Bound SOP that is used to create the lattice.

divsz: Int

The number of divisions the control lattice has in its z-direction. This should be the same as the z-component of the Division parameter on the Bound SOP that is used to create the lattice.

ordx: Int

When interptype is set to 2 (NURBS Lattice), this is the number of points that influence the lattice deformation in the x-direction. Lower values produce deformed points that more closely follow the deformed lattice’s position, while higher values produce a smoother deformation. The minimum order is 2 (linear basis) and the maximum order is 11. The default value is 3.

ordy: Int

When interptype is set to 2 (NURBS Lattice), this is the number of points that influence the lattice deformation in the y-direction. Lower values produce deformed points that more closely follow the deformed lattice’s position, while higher values produce a smoother deformation. The minimum order is 2 (linear basis) and the maximum order is 11. The default value is 3.

ordz: Int

When interptype is set to 2 (NURBS Lattice), this is the number of points that influence the lattice deformation in the z-direction. Lower values produce deformed points that more closely follow the deformed lattice’s position, while higher values produce a smoother deformation. The minimum order is 2 (linear basis) and the maximum order is 11. The default value is 3.

falloff: Float

Controls the distance beyond the rest lattice at which points continue to be partially deformed. This allows for some wiggle room for points that slide in and out of the rest lattice due to numerical rounding errors or other small deformations. If this value is negative, the points are always deformed regardless of their distance beyond the rest lattice. The default is 0.0001.

group: String

The input geometry’s point group that determines the points that are deformed by the lattice.

interptype: Int

The interpolation method used to deform the input geometry based on the control lattice’s shape. See lattice types. The default is 2 (NURBS Lattice).

updatenmls: Bool

If set to True, recomputes the geometry’s point or vertex normals after the deformation. The default is True.

Outputs

*geo: Geometry

The deformed geometry.

APEX nodes