# Dynamics III – 2.4 Cloth Parameters – do it myself

Let me try to establish some reasonable Cloth Parameters myself. In doing so, I use the details presented in Sim Calcs in the Mesh, especially on the effects of thicker threads and more tightness in the weaves.

Cloth is not rock or metal, it has an organic background: silk, wool, cotton, skin (leather) or oil derivative (rubber). All those materials have a specific weight of about 1000 kg/m3 when crushed together, about the same as water. Perhaps some thick leathers or rubbers weight more, but we’re not making clothes from those materials.
As a result, a Cloth Density of 1 (gram/cm2) matches a piece of cloth of 1 cm thick, so this parameter can be interpreted as cloth thickness as well, in cm, when grasped firmly (note that wool and fleece include some air, squeeze that out first). A basic shirt has a thickness of 0.5mm = 0.05cm. A 3mm leather belt can be assigned 0.3. And so on.
The Density only has to be corrected for weave tightness, like in silk (quite tight) and in laces and loose weaves (holes in the wall). So a lace shawl from thicker cotton could do 0.1 (1mm for the cotton) * 20% (for the structure that makes 80% void) = 0.02.

Tight structures will not let the air flow through, so the tightness comes in again while Air Damping is proportional to Cloth Density too. Let’s set a normal structure’s tightness to 100% (shirt, jeans), so that’s 0.05 for the shirt with a thickness of 0.05cm. And we’ve seen 20% for lace, then I can assume 125% for flags (they’re made to catch wind), 150% for leather/rubber and 200% for fine silk. The higher the value, the more it will float on air.

From the behavior of Wind Force in Poser (see Real World), I can infer that Amplitude values below 100% can be applied linearly, and values over 100% should be applied squared. So for my cotton lace shawl, air damping should be 0.02 (density) * 20% = 0.004. For fine silk, thickness can be as low as 0.0025 cm * 200% tightness => 0.005 density, and 0.005 * (200%)2 => 0.020 air damping. Note that the silk values are the Poser default ones.

The Frictions are independent of cloth density, and Self-friction can be ignored (or just dreamed up, if that feels better). A reasonable value for a basic shirt rubbing over skin seems to be 0.7 for Dynamic and a bit more, say 0.8 for Static Friction. So the question shall be: are the clothes so tight around the body that they are rubbing indeed, or is there enough space to make the clothes hover over some air layer? When that’s the case, the friction values can be reduced to say 0.2 for Dynamic and 0.3 for Static. Note that the higher the friction, the less response we’ll get from the gravity pulling the cloth down, and draping it in place.

By just using a ruler, I found out that I needed to pull very hard to stretch a part of my shirt from neutral to extreme, which produced a 2-4% elongation. Poser tests showed a 1% elongation for a piece of cloth hanging under its own weight, for the default settings. Is my 70cm shirt really stretching 0.7 cm when I hang it out? Normal cloth is not that stretchy. Cotton fibers can be stretched up till 7% until they snap, which does not sound stretchy to me either.

After tenfolding the density from the default 0.005 to the 0.05 of the shirt, I should tenfold the Resistances as well to get similar results. But that would drive the Stretch and Shear Resistances to 500 which I’ve just found too low, and 1000 is the max value for those settings. They will certainly lock up the simulation. Tenfolding the Fold Resistance would make it 50, but I know that light silk is the default material, and silk is a very smooth folder compared to basic shirt fabric. So I make Fold Resistance 200.

Now I’ve got my values for my shirt, but I’ve also got the feeling that these values are too high to make the sim run properly. Luckily, I’ve found that parameters are proportional to density while keeping the behavior, so I’m free to reduce all parameters a tenfold, except the Frictions. I decide not to adjust for the mesh structure. So:

 My Shirt My Sweater My Straitjacket Transparency Original Adjusted Original Adjusted Original Adjusted Original Adjusted Fold Res 200 20 20 20 500 25 0 1 Shear Res 1000 100 100 100 5000 250 0 5 Stretch Res 1000 100 100 100 5000 250 0 5 Stretch Damp 0.1 0.01 0.02 0.02 0.5 0.025 1 0.1 Cloth Density 0.05 0.005 0.06 0.06 0.15 0.0075 1 0.05 Self friction 0 0 0 0 0 0 0 0 Static friction 0.3 0.3 0.5 0.5 0.4 0.4 0 0 Dynamic fr 0.2 0.2 0.3 0.3 0.2 0.2 0 0 Air Damping 0.05 0.005 0.005 0.005 0.5 0.025 0 0.002

My (thick home knit) Sweater folds, shears and stretches extremely well, and when I let loose after some stretching, it wobbles a bit before it comes to a rest. So all these values are low, compared to My Shirt. Knits of course have a low Air Damping; wind can blow quite through it. The hairy wool threads make somewhat larger Friction values. Since the values are not extreme, I don’t see a real need for adjustment.

My Straitjacket (J) is made of thick (1.5mm), stiff cotton: no shear, no stretch and hard folding. Thanks to the very tight weave I doubt it will have large Friction, but air will hardly flow through which raises the Air Damping. The extreme Resistance values require an adjustment to make the sim run, so I altered the values a twenty-fold.

### Transparent clothes

When cloth is absent and leaves a hole in the mesh, the cloth simulator can handle that. It just sees a new edge in the midst of the clothing, and seals with that accordingly. But in various cases, the whole mesh is presented to the cloth sim and leaving out parts is dealt with by using 100% transparency in the materials. Shortening dresses and pants, opening sides or back portions, it all can be handled that way.

For the cloth sim, this is not the biggest issue as I can select an area by material, assign it so its own dynamic group, and give it its own set of behavioral parameters. But… which ones?
Simply stated, as there is supposed to be no cloth, it should not resist anything. So I’ll tend to zero out Fold, Shear and Stretch Resistance, the Frictions and Air Damping. I’m reluctant to zero out Cloth Density as well. In the first place, it would not eliminate gravity. Second, it would generate incredible accelerations due to other forces, thanks to F = m*a (force = mass times acceleration). So actually I turn things the other way around and eliminate the effects of other forces by assigning density its highest value: 1. Stretch Damping I’m not sure of, the higher the value the faster it gets the energy out of the cloth, once it got in. Which is fine for the transparent area, but not for the edges of the non-transparent parts.

Sounds good, eh? But it won’t work out. The pitfall is in the remark “it would not eliminate gravity“. And this gravity will continue to pull the cloth vertices down, since cloth room does not take the surface texturing into account. It pulls the transparent vertices as it pulls the other ones.

Therefore I should raise Cloth Density and Stretch Damping considerably, and lower the Resistances a lot, but not to their extremes. I should just make a serious difference, tenfold or so, to the surrounding cloth. And I’d better assign Air Damping some value to dampen the swaying of the cloth, just to shorten the length of the simulation. Again, it should be lower than the surrounding cloth for a good effect, but I should not go to the extremes.

See the table. From the default values, I tenfolded (up) the Stretch damping and Density, and tenfolded (down) the Resistances and Air damping. This means that the all-important ratios between Density and things changed a hundredfold. Frictions could be zeroed out, no sweat.

On making the hole
In Pose Room I used the Group Editor to create a group in the object, and assign it a material “HoleMat”. In materials Room I assigned 100% transparency to HoleMat, and zeroed out the other channels. In Cloth Room, I created a new Dynamic group (panel 3. Cloth Groups), and assigned it the HoleMat in the definition (via [Edit Dynamic Group]).

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