Cloth Bind operator

The Cloth Bind operator allows you to convert particle shape meshes into dynamic cloth meshes.


Operation Rollout

  • Operation: the cloth conversion operation to perform.

Shape to cloth: converts a particle shape mesh into a dynamic cloth mesh.

Cloth to shape: converts a dynamic cloth mesh into a particle shape mesh.


Basic Cloth Settings Rollout

Activation

  • Activate all: all new dynamic cloth particles will be activated.

  • Activate by material ID: all new dynamic cloth particles with a matching material ID will be activated.

  • De-activate by material ID: all new dynamic cloth particles will be activated, excluding those with a matching material ID.

  • Material ID: the target material ID to match.

  • Include border vertices: vertices that border faces with differing material IDs will be included as long as one of the material IDs matches the target ID.

Activated particles are particles with normal mass. Their position will be affected by the bind solver.

De-activated particles are particles with infinite mass. Their position will not be changed by the bind solver.

Cloth Particles

  • Inherit mesh UVWs: causes the new cloth vertex particles to inherit the UVW coordinates of the originating mesh.

  • Save vertex index: saves the cloth mesh vertex index to a custom float data channel in corresponding rig particles.

  • Channel: the custom float data channel to save cloth mesh vertex indices.

Send Out

  • Activated/de-activated particles: choose which particles will satisfy the operator test condition.

Solver Rollout

Particles

  • Mass: the mass override for new cloth particles.

  • Mass per-particle: each particle will be assigned the mass override value.

  • Mass per-cloth: each particle will be assigned the mass override value divided by the total vertex count of the cloth mesh.

The mass per-cloth setting allows you to keep overall cloth masses independent of cloth vertex count, so if you subdivide your input cloth mesh at a later point in time, the overall mass ratio between the cloth as a whole, and other particles, will stay the same.

Binding Stiffness

  • Stretch/Shear/Bend/Volume stiffness: stiffness values for various bindings.

  • Stretch/Shear/Bend/Volume texmaps: the texmaps whose intensity values will be used as a multiplier for the various stiffness values.

Texmap values are determined by sampling the texmap using the vertices of the input cloth mesh. Since each binding is formed by connecting two vertices, the highest of either texmap value will be used as the multiplier.

Stretch bindings: these bindings are formed between vertices that share a visible edge in the source mesh. They help cloth resist stretching.

Shear bindings: these bindings are formed between vertices that share an invisible edge in the source mesh. They also form diagonally between neighbor vertices that span invisible edges. They help cloth resist shearing.

Bend bindings: these bindings are formed between any two vertices that are separated by a third vertex between them. They help cloth resist bending.

Volume bindings: these bindings are formed by casting rays form vertices in the opposite direction of vertex normals, through the interior of a mesh to the other side. They take the shape of internal struts within the mesh and can help cloth maintain overall volume.

Stiffness Solver
  • Simple: bindings are solved in a straight-forward manner. Their stiffness is mostly dependent on bind solver step count.

  • Constrained: bindings are solved in a way that makes their stiffness somewhat independent of bind solver step count, at a small performance cost. This setting has no effect on bindings whose stiffness value is 1.

Binding Properties

  • ID: the ID value to assign to bindings.

  • Damping: the amount of post-solve damping to apply to cloth bindings.

  • Length bias: the post-initialization multiplier to apply to binding rest lengths.

  • Length bias texmap: the texmap whose intensity values will be used as a multiplier for the length bias value.

Texmap values are determined by sampling the texmap using the vertices of the input cloth mesh. Since each binding is formed by connecting two vertices, the highest of either texmap value will be used as the multiplier.

Since the default bias value is 1.0, the bias texmap multiplier will inversely linearly interpolate values towards 1.0 (for example, an RGB value of [255,255,255] will result in a bias of [length bias spinner value], whereas an RGB value of [0,0,0] will result in bias of [1.0]).

Tets

  • Weld tets: welds individual tet cloth meshes together into a single larger combined cloth mesh where adjacent tets share edges.

When “weld tets” is enabled, you no longer need to use an extra Particle Bind operator to keep tets connected, and the overall processing power required to simulate the tets will be lower due to the reduced particle/bind count that comes as a result of the weld function. Also, optimal input meshes when using this mode should be single particles with meshes composed of multiple tets, instead of multiple particles with meshes composed of single tets.

  • Inter-cloth welding: when enabled, all new tet cloth meshes in the event will be potentially welded together. When disabled, only separate tets of the same cloth mesh will be welded together.

  • Fix inverted tets: when simulating cloth composed of tet meshes, the tets can sometimes become inverted (flipping inside out) while undergoing deformations. Enabling this setting will add forces to the simulation at the end of each bind solver which which will attempt to prevent/correct tet inversion.


Collisions Rollout

  • Enable CUDA collision solver: when enabled, the cloth will be added to the CUDA collision solver, which evaluates at the end of every time step for applicable cloths.

  • Thickness: the desired base thickness of the cloth. Other cloths within this distance will generate repulsion forces.

  • Friction: the desired friction of the cloth. The actual friction value between any two cloth meshes is the average of their friction values.

  • Self-collisions: when enabled, the cloth will collide with itself.

  • Self-thickness: the desired thickness of the cloth, when colliding with itself.

If the base thickness value of a self-colliding cloth is larger than the distance between adjacent triangles in the cloth mesh, the cloth will repel itself in an unwanted manner. Keeping the self-thickness value lower than the minimum distance between adjacent triangles in a cloth mesh can help to prevent this.

  • Inter-cloth collisions: when enabled, cloth will collide with other cloth meshes.

  • Object collisions: when enabled, cloth will collide with objects added to a Collision operator in the same event.

Thickness/friction values for object colliders will be taken directly from the Collision operator itself. However, it’s important to note that only the “absolute radius” value of a Collision operator will be used as the thickness value for colliding object meshes.

Inter-triangle collisions

  • Only collide if particle sim groups are:: when enabled, inter-triangle collision pair filtering will be governed by the simulation groups assigned to the underlying particles driving the cloth faces.

  • Match type: controls how simulation groups assigned to particles of colliding triangle pairs will determine whether the pair of colliding triangles will be filtered from the collision solver.

Pre-processing

  • Prevent coincident edges/faces: when enabled, open edges of regular input meshes (and surface vertices of tet meshes), will be shrunk slightly inward (by the threshold amount), to avoid perfect overlap between faces of adjacent mesh or tet elements. This tiny adjustment can help the CCCS perform collision resolution on areas that would otherwise not be possible (ie, areas that would otherwise generate CCCS errors).

  • Threshold: the amount of shrink open edges and tet mesh vertices inward. This value should be kept very small.


Tearing Rollout

  • Enable cloth tearing: enables cloth tearing.

Tearing must be enabled in order for tySlicers (added within the Particle Break operator) to work on cloth.

A particle’s weakness is its propensity to tear. Weaker particles will cause their attached bindings to tear with less overstretch. Stronger particles require more overstretch before tears will occur. Every time a tear occurs, a progressive weakness multiplier is applied to the attached particles’ weakness values. The value of the weakness multiplier can have a large impact on the overall look of the tear. Initial weakness values can be controlled with a texture map, in order to specify where the weakest areas of a cloth are. This gives users more control over tearing behavior.

Tears caused by tySlicer objects are excluded from tear limits.

Stretch

  • Maximum %: the maximum percentage of stretch a binding may undergo before it will tear, prior to weakness calculations.

  • Variation %: the per-particle percentage of variation to apply.

Strength

  • Tear overstretch frames: a binding must exceed its maximum stretch percent for this many frames before it will tear.

  • Variation %: the per-particle percentage of variation to apply.

Weakness

  • Use weakness map: controls whether weakness maps are enabled.

  • Animated map: controls whether the weakness map is animated. Animated maps will be updated each time step.

Depending on the complexity of a cloth simulation, updating weakness values from a texture map can have a measurable performance impact. Therefore, instead of automatically updating a weakness map each frame, users have the ability to select whether or not the map is animated manually. Non-animated maps will only be updated once per simulation.

  • Texmap: the weakness texmap to apply to the cloth, which will affect the weakness of cloth vertices.

Progressive Weakening

  • Multiplier/tear: the weakness multiplier to apply to particles that are attached to a torn binding.

  • Variation %: the per-particle percentage of variation to apply.

Weakness Limits

  • Min/Max: the minimum/maximum weakness values a particle may have.

Tear Limits

  • Max tears/strep: the maximum number of tears that can occur per step.

  • Variation %: the per-particle percentage of variation to apply.

Tear Distance Limits

  • Max dist/step: the maximum cumulative rest length of torn bindings that is allowed per step.

  • Variation %: the per-particle percentage of variation to apply.

Tear Timing

  • Min frames/step: the minimum duration of frames that must pass before a tear step is processed.

  • Variation %: the per-particle percentage of variation to apply.

Cloth Solver

  • Tear de-activated particles: when enabled, particles that have been de-activated will still be candidates for tearing. When disabled, any cloth binds attached to de-activated particles will not be torn.

  • Sim cloth after each tear: controls whether additional simulation solves will be performed after each time a bindings is torn.

  • Step reduce %: controls the number of post-tear solver steps will be calculated, as a reduced percentage of the total particle bind solver steps.

Every time a binding is torn, it affects the way its neighbor bindings must stretch in order to accommodate the newly torn binding. This change in binding stress can affect which bindings need to be torn next. However, without re-solving all bindings, the tearing algorithm has no way of knowing which areas are experiencing more/less stretching due to the previous tear. By enabling “sim cloth after each tear”, the solver has a chance to re-adjust all bindings after each tear which can lead to fewer tearing artifacts. However, re-solving is an expensive operation, and if many tears occur in a single time step this can lead to a significant reduction in solver performance. By increasing the “step reduce %” value, you can decrease the amount of time it takes to perform the intermediate solves while retaining their overall benefit.

Uniqueness

  • Seed: the seed value for all varied parameters.

Mesh Rollout

Mesh

  • Generate Cloth Mesh: controls whether an actual cloth mesh will be generated by the tyFlow object. If disabled, no cloth mesh will be created, even though cloth bindings will still be created between cloth particles.

  • At rendertime only: when enabled, cloth meshes will only be generated during rendertime.

Post-process

  • Chamfer pinched verts: cloth tears can often lead to degenerate cases where triangles hang from a part of the cloth mesh by a single vertex. Enabling this option will chamfer those single vertex connections between faces, which makes it easier to subdivide the resulting cloth mesh without gaps forming between those faces.

  • Add sehll to surface: controls whether the resulting cloth mesh will be given backside/edge faces in order to give it visual thickness.

  • Outer amount: the distance to extrude faces along their normal.

  • Inner amount: the distance to extrude faces along the opposite direction of their normal.

  • Open edges only: controls whether only elements with open elements are extruded.

  • Outer MatID Enabled: controls whether outer faces are given a material ID override.

  • Outer MatID: the override ID to assigned to outer faces.

  • Inner MatID Enabled: controls whether inner faces are given a material ID override.

  • Inner MatID: the override ID to assigned to inner faces.

  • Edge MatID Enabled: controls whether edge faces are given a material ID override.

  • Edge MatID: the override ID to assigned to edge faces.


Display Rollout

Display

  • Show stretch/shear/bend/volume constraints: controls whether various cloth constraints will be displayed in the viewport.

  • Show dead constraints: controls whether torn constraints will be displayed in the viewport.

  • Display text info: controls whether various pieces of binding debug info will be displayed in the viewport, pertaining to binding particle IDs, rest lengths, stretch ratios, etc.


Cloth Deconversion Rollout

  • Delete cloth rig particles: controls whether cloth rig particles will be deleted, when a dynamic cloth mesh is converted back into a particle shape mesh.

  • Carry velocity forward: controls whether the average velocity of all cloth rig particles will be applied to the resulting cloth shape particle.