Houdini 20.5 Nodes Geometry nodes

APEX Add Wrinkles geometry node

Procedurally add a Wrinkle Deformer to an APEX rig

On this page

Overview

This node edits an APEX rig to apply effects from the Wrinkle Deformer to the posed character. The parameters on this node can be edited like a Wrinkle Deformer SOP, or they can be overridden by the parameters of an existing Wrinkle Deformer SOP.

Inputs

CharacterStream

An APEX Packed Character to give wrinkles.

Collision Geometry

A volume to use as a collider when applying wrinkles to the mesh. This must be a VDB volume with SDF.

Parameters

Rig

Set Up Rig

When enabled, this node will modify the rig to inject the wrinkle deformer logic. Otherwise, this node will only pack the pre-processed geometry into the character.

Rig Name

Name of the character’s packed folder primitive storing the rig to operate on.

Rest Shape Name

Name of the character’s packed folder primitive storing the character’s rest position.

Node Prefix

A prefix added to the names of all APEX nodes injected into the rig by this node.

Packed Folder Prefix

A prefix added to the names of all Packed Folder primitives added to the Character folder by this node.

Deformed Port Pattern

A pattern identifying the port in the rig which outputs the deformed character skin geometry. This will be used as the Geometry to Deform for the wrinkle deformer. If no matching node is found, or if the field is empty, the deformer will use the output of a Bone Deform node in the rig.

Overrides

Parameter Source

Whether to use the parameters from this node or copy them from another Wrinkle Deformer SOP which is provided through a node reference.

Override Path

The path of the Wrinkle Deformer SOP whose parameters will be used when adding wrinkle effects to the rig

Ground Plane Override

If enabled, the path to a height field that will serve as the ground plane when applying wrinkles to the character instead of the ground plane of the Wrinkle Deformer SOP from Override Path.

NOTE: The SOP in Override Path must have had ground planes enabled for this to work.

Override Collider with Second Input

When checked, uses the VDB on the second input as a collider when applying wrinkles to the character instead of the VDB collider from the SOP in Override Path.

NOTE: The SOP in Override Path must have had some form of collisions enabled for this to work.

Geometry

Group Type

Controls the type of group used to specify what to deform.

Group

The group on the rest geometry to deform. This is the part of the rest geometry that will have constraints generated to undergo deformation.

Triangulation

Distance constraints are usually built on a triangle mesh. Rather than forcing the input to be triangulated, it can be implicitly triangulated.

None

Do not triangulate the input.

Regular

Consistently split into triangles.

Alternating

Attempt to reverse the triangle splitting so a series of quads

have a less regular structure.

Pin Points

Points to pin to their original positions in Geometry to Deform.

Physical

Mass

mass value for the points that controls how strong the constraints are.

Unchanged

Do not set the mass attribute.

Set Uniform

Set the mass attribute to the specified value.

Calculate Uniform

Calculate a uniform value for the mass attribute for the points on each connected piece based on the piece’s volume and the Density parameter.

Calculate Varying

Calculate a varying value for the mass attribute for the points based on the Density parameter and polygon volumes or areas.

Density

The volume used in calculating mass is scaled by this value when Mass is set to Calculate Uniform or Calculate Varying.

Thickness

Thickness of the points, stored in pscale.

Unchanged

Do not set the pscale attribute.

Set Uniform

Set the pscale attribute to the specified value.

Calculate Uniform

Calculate a uniform value for pscale for the points on each connected piece based on the average edge length of the piece and the Edge Length Scale parameter.

Calculate Varying

Calculate a varying value for pscale based on the average edge length of polygons incident to each point and the Edge Length Scale parameter.

Constraints

Constraint Iterations

The number of rounds of deformation the node will apply to resolve the constraints. More iterations results in more fully resolved wrinkles.

Topology

The method used to generate the distance constraints which describe how the geometry should wrinkle.

Cloth

Creates distance constraints between adjacent points and points across triangles. This option generally creates smaller wrinkles and uses a small number of constraints.

Surface Struts

Creates distance constraints from each point to all other points that are an edge distance of Neighbor Distance away. This option can create larger wrinkles than Cloth, but can also create many more constraints that become slower to solve.

Neighbor Distance

The number of edges between the two end points of each surface strut constraint. Higher distances produce larger wrinkles, but also create more constraints that take more time and memory to solve.

Rest Length Scale

The rest length of the distance constraints will be the original distance between the points multiplied by this parameter.

Rest Length Scale Scale Mode

Allows scaling the rest length scale by attributes.

No Scaling

The rest length scale is uniform across all constraints.

Scale by Attribute

The rest length scale applied to each constraint is multiplied by the average value of a given attribute on all points incident to that constraint.

Rest Length Scale Attribute

The point attribute used to scale the rest length scale.

Bend Stiffness

The stiffness of the constraint, which controls how strongly the constraint pushes points away when they are closer than its initial rest state.

Bend Stiffness Scale Mode

Allows scaling the bend stiffness by attributes.

No Scaling

The bend stiffness is uniform across all constraints.

Scale by Attribute

The bend stiffness of each constraint is multiplied by the average value of a given attribute on all points incident to that constraint.

Bend Stiffness Attribute

The point attribute used to scale the bend stiffness.

Stretch Stiffness

The stiffness of the constraint, which controls how strongly the constraint pulls points back towards its initial rest state.

Stretch Stiffness Scale Mode

Allows scaling the stretch stiffness by attributes.

No Scaling

The stretch stiffness is uniform across all constraints.

Scale by Attribute

The stretch stiffness of each constraint is multiplied by the average value of a given attribute on all points incident to that constraint.

Stretch Stiffness Attribute

The point attribute used to scale the stretch stiffness.

Attribute Source

Where attributes for scaling parameters are taken from.

Geometry

Take attributes from the Geometry to Deform.

Rest Input

Take attributes from the Rest Geometry.

Collisions

Enable Tangent Plane Collisions

When enabled, each point treats its tangent plane as a collider during the wrinkle solve. This can be a cheap method of faking collision effects in certain cases where the deformation should not oppose the normal direction without creating a VDB. For example, generating wrinkles in clothes against a character’s body or in thin objects to prevent self-collisions.

This feature respects the normal attribute of the Geometry to Deform to find the tangent plane.

Tangent Plane Inset

An amount to inset the tangent plane along the normal direction before detecting collisions. This creates more of a buffer between the point’s original position and its collider.

Inset Scale Mode

Allows scaling the Tangent Plane Inset by attributes.

No Scaling

The inset is uniform across all constraints.

Scale by Attribute

The inset at each point is multiplied by that point’s value of a given attribute.

Inset Attribute

The point attribute used to scale the inset.

Add Ground Plane

You can have a ground plane to act as a collider while generating wrinkles.

None

No ground plane will be used.

Ground Plane

Uses a ground plane with the specified position and orientation.

Height Field

Uses a heightfield as the ground plane.

Height Field

SOP path to the height field geometry.

Ground Position

The location of the center of the ground plane.

Ground Up

The orientation of the ground plane.

Collision SDF Offset

A buffer distance to leave between the wrinkles and the surface of the Collision Geometry and ground plane.

Set Uniform

Use a buffer with the specified distance.

Use Thickness

Use each point’s pscale attribute that represents its thickness as the buffer distance.

Output

Wrinkle Scale

This can be used to dampen or amplify the size of the wrinkles.

Wrinkle Scale Mode

Allows scaling the wrinkle scale by point attributes.

No Scaling

The wrinkle scale is uniform across all points.

Scale by Attribute

The wrinkle scale of each point is multiplied by that point’s value of a given attribute.

Wrinkle Scale Attribute

The point attribute used to scale the wrinkle scale.

Ignore Collisions When Scaling

When enabled, scales below 1 will blend the wrinkled output with the incoming deformed mesh before any collisions are processed. Collisions will also not be re-applied after the scaling. This can also cause the output to float away from collider surfaces when the scale is greater than 1.

When disabled, scales below 1 will blend the wrinkled output with the incoming mesh after being pushed out of the colliders and this step is re-applied after scaling.

Max Deformation Angle

The maximum allowed angle between the point deformation deltas and point normals.

Delta Smooth Iterations

The number of iterations of Delta Mush to apply after deformation.

Update Affected Normals

Recomputes any point normals that are affected by the wrinkling operation. This option has no effect if the input geometry does not have a normal attribute.

See also

Geometry nodes