On this page |
The Wrinkle Deformer SOP is a fast, OpenCL-based SOP to add wrinkles to deforming geometry without simulation.
It can be used to mimic wrinkles on soft surfaces like cloth or skin, as well as stiffer objects like tires. The deformer is fully quasistatic, so you can watch the wrinkles update while posing a character without scrubbing the timeline.
To produce wrinkles, you need a rest geometry and a geometry to deform. The Rest Geometry determines what the object looks like at rest and is used to produce distance constraints for the internal solver to use. The Geometry to Deform is the geometry after it has undergone some deformations, which will then have wrinkles applied to it by the node.
There is also an option to provide Collision Geometry. Then wrinkles are generated while colliding with it to prevent the wrinkles from penetrating other objects. The wrinkle deformer does not detect or resolve self-collisions caused by the deformation.
Note
The Wrinkle Deformer SOP is topology dependent, so depending on the resolution of your mesh, the look will be different. The finer your mesh is, the smaller your wrinkles will be.
Note
When using a volume as a collider, it must be a VDB volume with SDF. You can convert it by using a VDB from Polygons before connecting it to the third input of the Wrinkle Deformer.
How to ¶
To... | Do this |
---|---|
Increase the detail of the wrinkles |
Increase the Constraint Iterations. This will give you more detail, but will slow down performance. This parameter controls the strength of the effect. Lower values will produce results closer to the original mesh, and higher values will produce results closer to the fully detailed mesh. |
Create thicker wrinkles |
Make sure the Topology is set to Surface Struts and increase the Neighbor Distance parameter. This will create a softer effect with more deformation, as it creates more constraints to parts of the mesh that are further away. However, increasing this value will slow things down. This is useful for materials like leather that have thicker/wider wrinkles as opposed to a material like cotton or silk that has thinner/finer wrinkles. |
Create more wrinkles |
Making the mesh finer will result in more wrinkles, since the Wrinkle Deformer is topology dependent. Wrinkles can only be as thin as the polygons in your mesh, so to have a high frequency of wrinkles, you need to work with a high resolution mesh. |
Control where stronger wrinkles appear |
You can alternatively Scale by Attribute with Compression Stiffness to achieve a similar effect. |
Smooth the transition between strong wrinkles and the rest of the geometry |
|
Smooth sharp edges |
Increase the Delta Smooth Iterations value in the Output section. This is very useful for lower resolution meshes, to give it a more organic look and get rid of any jaggedness. Increasing this value can also help with self-collisions, where wrinkles start to overlap. |
Prevent an area from wrinkling |
Select points to pin to their original positions using the Pin Points parameter. |
Prevent cloth from penetrating a collider mesh |
Turn the collider geometry into a VDB volume with SDF using a VDB from Polygons SOP and connect it to the third input of the Wrinkle Deformer. This is useful for objects such as armor, ropes, saddles, etc., as it prevents the cloth from intersecting with these objects, while still allowing them to influence the way the cloth wrinkles. |
Limitations ¶
-
The Wrinkle Deformer doesn’t handle self collisions. However increasing the value of the Delta Smooth Iterations can help where wrinkles start to overlap.
-
Colliders have to be against VDBs or Heightfields. You can turn the collider geometry into a VDB volume with SDF using a VDB from Polygons SOP and connect it to the third input of the Wrinkle Deformer.
-
The wrinkle deformer is quasi-static and therefore doesn’t store past data, so you could sometimes run into issues you wouldn’t otherwise encounter when running a true simulation. However, this makes it much faster.
-
Since the wrinkle deformer is meant to mimic wrinkles on soft surfaces and is not actually simulated, extreme animation (pushing the mesh around too much) can result in clipping normals. If this is the case, it might be best to pair with a Vellum simulation, where physics are taken into account.