Dynamics III – 3.7 Mesh behavior – crumbling

One major issue that came up when discussing Cloth Room in the Renderosity forum was crumbling, very well documented by Bagginsbill.

 

Let’s consider a quad mesh, with the edges in horizontal and vertical (or: UV-) direction. Stretching, folding and shearing in those directions happen in a straightforward way. So let’s look when forces are applied diagonally.

When pushing, the cloth might fold diagonally without having direct counterforces available: no edges, hence no springs. Shear and fold work against it a little bit, but generally are not strong enough to push all the surrounding cloth away. So it’s easy to bring the opposite vertices together. This is exactly what causes the “crystal ridges” as artifacts in the cloth. And for quads those ridges can exist in both diagonal directions, so crumbling is caused when some of those ridges come together and combine effects.

This is different in tris, which have a diagonal edge in at least one direction. So mono-tris still might ridge in one direction but are hard to crumble, X-tris, Zigzags and Hexes can resist ridge forming in all directions and won’t crumble.

What might help against ridges in quad meshes?

  • Not using quads resolves this to some extent, and smaller quads make smaller ridges
  • Increasing shear and/or fold resistance will push the crumbles out. But high shear and fold resistance will affect other behavior of the cloth as well, life is a compromise. Reducing mass (density), friction and other effects will make this pushing more successful. So instead of raising fold/shear resistance, reducing density is an option. And as shear and fold resistance work together in this case, you can do with less fold and more shear.

Engineering stuff

For those who like the formulas for a better understanding.

Consider a quad, three vertices in a plane, the fourth one out of plane. If the distance to its opposite vertex (in the same poly) is 100% in case the vertex IS in plane, then now it’s shorter: X% instead. When X=0 the quad has folded completely into a double sided triangle.

In this out-of-plane position, this quad and its neighbors make a shearing force S*(90-a) with S the shearing resistance (equal or related to the Poser parameter, one never knows) and a the angle between two adjacent edges (orange, in the scheme). At a=90° (perpendicular), shearing is null while each deviation generates deformation of the quad and counterforces accordingly.
The quad and neighbors also make a folding force F*(180-b), with folding resistance F and b the angle between opposite edges (pink in the scheme). At 180° the edges are in line, no folding, and any deviation generates folds and counterforces accordingly.

From geometry, we’ll have Sin(a/2) = ½ * sqrt(2) * X and Sin(b/2) = ½ * sqrt(2) * sqrt( 1+X2 )

For each X there is a valid combination a and b (see the graph), so for each X there is a ridge-resisting force. The ridge only disappears when this force is larger than the counterforces for friction and gravity.

At the left, say X=90%, we find (180-b)=40 and (90-a)=10, a 4:1 ratio between (anti)folding and (anti)shear. Halfway, at 50% we’ll find a 1.5:1 ratio. So when reducing the (anti)folding with 1, the (anti)shearing force should go up with at least 4 to 1.5 to get a similar result. Otherwise things get worse.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.