Dynamics III – 3.4 Mesh behavior in short

Actually, Poser performs simulation calculations upon a mechanical structure, which can be represented well by a “spring net”: a structure of small (steel) balls, connected by tension springs and torsion springs. More details on that in Sim Calcs in the Cloth Mesh and Crash Course on… Sims (part V). Those elements interact according to the basic laws of mechanics. Translated to Poser, the balls of the spring net take the interaction with the scene and the collision objects: density, air damping and the frictions. The springs take all cloth-internal interactions: folding, shearing and stretching.

At the start of a calculation, the mesh structures of the clothing elements are transformed into such spring nets. It’s a simple transformation, one-to-one without subdivision (*): each vertex in the mesh becomes a ball, each edge between vertices becomes a tension spring (handling stretching) and between all adjacent existing edges we’ll get torsion springs (handling folding and shearing). This implies that mesh structures with equivalent vertices will differ only in folding, shearing and stretching and not in the other factors. Let’s see how this works out.
(*) when there was subdivision, then the phenomena described in The Sim Engine would not occur. So there isn’t any.

Meshes structures come in sorts, I can’t possibly handle them all. For a particular one, I can ask myself: if this were a real world object build from balls and springs, how would it behave? In this chapter, I consider: Quads, Mono-tris (all diagonals in the same direction), Diamond-tris (or: X-tris, alternating diagonals horizontally and vertically), Fish-tris (or: ZigZag, alternating vertically, same horizontally or vice versa), and Hex’s.

In theory: research reports tell that regularity kills the sim, the more irregular the mesh, the better. Making irregular tri-structures is known as Delaunay triangulation. More on this in Cloth Simulation in Perspective (part IV).

In my observation, the most regular structures have the most artifacts in their behavior. But also:

  • Quads are the best representation of non-weaves like rubber, leather, fleece, etc.
  • Tris are a good representation of normal weaves (linen etc.): mono-tris are the worst, X-tris are the best
  • Hex’s are the best representation of loose knits, like home-made winter sweaters.

Let’s have a further, still undetailed, look into this and apply: horizontal and diagonal pulling, horizontal and diagonal pushing, and shearing, to all of those. Horizontal (or vertical), as in: according to the main edges. But first: what happens when I alter the mesh density?

Mesh density

Doubling the density of the 3D mesh implies: halving the length of the edges, and quadrupling the amount of edges, corners and vertices (doubling in two directions or dimensions, cloth is a surface). What does it matter?

Well, not that much. While I keep the parameters intact, I still get cloth with the same Cloth Density and so on. Stretching, shearing, all remains the same. Even the total amount of folding will not change, as the same Folding Resistance has to be catered for. Except that smaller polys will give me more but finer folds instead of less but larger folds. Bends of the cloth around a corner will be smoother, performed in more, smaller steps. And in the section on thread thickness and Cloth Density (Sim Calcs in the Cloth Mesh) we’ll see that altering the folding relative to the other effects suggests the use of thicker (increase) or thinner (decrease) threads in the weave. In the latter case, the cloth will appear thinner, smoother, silkier.
Note the words “suggests” and “appear”: the cloth behaves as if we’ve changed the parameters, without actually doing so.

2x2mtr cloth, at densities: 10mm, 20mm, 40mm, 80mm. No difference in shear and stretch. The finer the density, the finer the folds that can be made. The ones at the right are quite heavy.

Same cloth 2×2 mtr, quads, hanging at one corner. The left (black-white) one uses 1x1cm polys, shows smoother folds and believable crumbling at the floor. The middle one (red-blue) uses 2x2cm polys, the right one (green-yellow) uses 4x4cm polys. Large folds and artifact’ish crumbling at the floor.

Next image shows the wireframe (anti-aliased).

Note that Android Andy uses meshes of say a 1x1cm density, while Vicky4 comes at about 0.5×0.5 or so. Size does matter. In the fine details, in the final quality. Not in the rough end result.

Mesh structure

No theory, just look at the facts first.

Six different mesh structures, fixed (choreographed) upon the upper row of vertices, all with the same, default cloth parameters, after 30 frames of hanging on their own weight. This is mainly a test on stretching.
Five of them behave more or less the same, the green one at the right is by far more stretchy and elastic, and skews to the right.

The next figure shows the towels hanging at one corner only (after 120 frames), which makes this a test on shearing, although stretching has effects too. Towels 2 and 3 from the left stretch far more than the others, towel 5 shows larger folds and the stretchy green one does its stretching here as well.

Color Structure Vert stretch Diag stretch Ratio
Red-white Quad

1.3%

4.7%

3.4

Yellow-blue Mono-tri A

0.8%

17.8%

22

Blue-red Mono-tri B

0.8%

22.8%

28

Blue-blue X-tri

1.5%

3.6%

2.4

Yellow-pink Zigzag-tri

1.7%

10.7%

6.3

Green-green Hex

7.2%

12.2%

1.7

Mono-tri A ends the Diagonal Stretch with the diagonal edges downwards, Mono-tri B ends with the edge horizontally.

It’s easy to see that the two Mono-tris (nr 2 and 3 from the left), both with their diagonal edges in the same direction all over the cloth, stretches by far the most in the diagonal direction while they stretched the least of all vertically. This implies that during normal use the animation will tend to jiggle sideways (bottom-right, bottom-left, bottom-right, …) which hampers its use in animations, and will raise the need for longer simulations to get a stable result. It’s quite unnatural for cloth.

The green hex at the right stretches a lot as well, but it did so too in the vertical stretch. The ratio between those stretches, in the table with the lowest value 1.7, means that it stretches about equally in all directions. It’s just very flexible stuff. The Zigzag (yellow-pink, 2nd from the right) makes large folds so this kind of mesh introduces an extra fold resistance.

To some extend these issues can be repaired by altering the parameters. So I set shear (resistance) to 200 and stretch to 100 for both the Mono-tris, and I set fold to 2.5 and shear to 100 for the Zigzag. This equalized the results between the meshes:

Up till now, the quads (red-white) and the X-tris (blue-blue) both make the most normal cloth appearance to me. The hexes (green-green) do make a good cloth too, but a rather flexible kind: good folding, shearing and stretching with the same parameters as the other ones. To me this resembles the behavior of a loose home-knit woolen sweater like my mom made in the old days. The other mesh types can make a decent cloth as well but require higher shear, and either higher stretch (mono-tris) or lower fold (zigzag).

The next test is on fine folding, all the cloth pieces were dropped from hanging on one corner onto the floor. In the animation: each cloth went down during frame 240 to 480, this affected only the corner vertices in the choreographed groups.

These are quads:

Quads crumble, which gives irregular, sharp edges over the diagonals of the polys. More on this artifact in Mesh-behavior – crumbling.

These are mono-tris:

(diagonal downwards)

(diagonals sideways) – it produces more finer folds than its equivalent. Mono-tri cloth has a directional difference build in.

These are Diamond / X-tris:

This is very believable normal cloth behavior, again.

These are Fishbone / Zigzags:

It looks as if it cannot make sharp bends, the folds remain fattish although the fold resistance was halved already.

These are Hexes:

Extremely flexible stuff, the heap is considerably lower / flatter than the other heaps.

So:

  • Quads do fine for cloth but crumble and ridge when fine folds are formed. Increasing mesh density (vertices per cm2) and increasing the Fold Resistance can help us out. In the meantime the cloth stays somewhat elastic and wobbly. This makes quads best suited for non-woven cloth, like leather, rubber, fleece and the like.
    In addition: use Quads in high resolution (20mm) anyway because too low resolutions (80mm) tend to freeze up. The higher I make the Shear-resistance, the more it looks like leather. The higher I make the Fold-resistance, the more it looks like rubber. In order to turn it from a thicker kind of massive rubber to an elastic band, I have to turn down the stretch parameters.
  • Hexes are extremely flexible in all directions, which normally is not the case for woven and non-woven cloth. Hexes are great for loose knits, like the home made woolen sweaters.
  • That leaves tris for normal, woven cloth. The more irregular the better, the Delaunay triangulation (as applied in Marvelous Designer) definitely is a good idea. From the alternatives, X-tris are the best and show the most natural cloth behavior, especially for silks and satins. Zigzags shear easily and don’t make fine folds that well, which can be adjusted with the cloth parameters (double the Shear Resistance, half the Fold Resistance). Then they make decent linen (burlap, denim, …). Diagonal tris are overly shearing and appear like cheap, wet, elastic towels unless the parameters are adjusted as well (double the Stretch Resistance, quadruple the Shear).
    In addition: At low resolution at medium (50) Shear-resistance it does reasonable cotton or linen, I use Fold-resistance to vary from summer dress (0.5) to thin curtain (500).
    At high Shear-Resistance it might freeze up, at low Shear-Resistance it either makes a wet or an overly elastic impression. At high resolution I can do silk (very low Fold-Resistance), satin (low Fold-Resistance) to chamois-leather (high Fold-Resistance and high Shear-Resistance) but I have to avoid the low Shear-Resistance/high Fold-Resistance combi as the plague. It’s the most unstable thing I’ve ever seen.

Mesh density enables the cloth to make finer folds, like it’s thinner.
From the Marvelous Designer manual: set the Particle Distance to 20-40mm for prototyping and 5-10mm for presentation models. Makes sense. Note that Vicky has a 5mm resolution herself, so you’re always using low resolution cloth on high resolution collision surfaces.

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.