Case Study: Covering Up (06 Pin and Move II)

As freezing some vertices in the cloth is quite an artificial way to create a result, the question is: what’s the alternative? What happens when I just put a heave object upon the cloth? Let’s find out.

First, I clear the groups in the cloth by [Edit Choreographed Group…] and clicking [Remove All]. This empties the group, and all vertices will join the simulation again.

Then (from Pose Room) I put a small (cylinder) object upon the cloth

Second, back to Cloth Room, I add this object to the set of collision objects, using the [Collide Against] (panel 2). In that same window, I select (using the small triangle) this object, and I set both Friction parameters to their maximum: 1.0. Then I select Ground, and I do the same.
I leave the car to its defaults.

Third, I give myself the proper start position with [Clear Simulation] and by setting the proper Morph dial to 1.

And, in the cloth properties panel, I check the Collision Friction option. This tells the simulator NOT to use the values below from the cloth object, but to use the values from the collision objects instead. And that means that the clot will experience extreme frictions from ground and pylon object, and default friction from the car.

[Calculate Simulation…] does the job again, and viewing the proper result might require to set the Morph dial to 0 afterwards (Pose Room, frame 1).

 

My result looks like this:

Not too bad. Actually the frictions for the car a somewhat high so the cloth gets pulled forward even at the extreme frictions between the cloth and the car and ground. Frictions apparently do not stop all sorts of movement.

Frankly, the 0.1 dynamic friction is quite high for cloth sliding over a well lacquered steel car roof anyway, and so is the static friction of 0.5. Both can be lowered at our liking, but when doing so it has to be done in the Collision Objects collection as the sim uses that info instead of the friction from the cloth parameters.

Case Study: Covering Up (07 Banner and Flags)

Let me show some basics on banners and flags. First I drag and drop a decent piece of cloth onto an emptied Pose Room:

Then I put it in position (xRot=90, yTran=1 mtr) and assign it neat material. After switching to Cloth Room I create a [New Simulation…] (panel 1) and I [Clothify…] (panel 2) the sheet. There is nothing to [Collide Against…] so I can leave that one, I only need to [Edit Choreographed Group…] (panel 3).

I decide just to select to top corner areas:

And now I can [Calculate Simulation…] for the first run. Perhaps I like a more flexible banner. I can do that by reducing all the resistances (friction and air damping won’t affect the result anyway). But instead, I can increase the Cloth Density as well, tenfolding to 0.05 for instance. The magic here is that the result is determined by the ratio of <parameter>/density, so reducing all parameters, or just increasing density, have a similar effect.

Variations to this theme are: adding more points to the Choreographed Group, or adding the complete top row of vertices to it. Using only one corner turn the banner into a towel, which I can hang onto a wall or so. And, for a change, I can put both sides into the group, rescale (in Pose Room), and reset the Cloth Density to its original 0.005 :

When to cloth continues to wobble up and down, I need more frames (in Simulation Settings, try 90) and/or I have to pump up the Stretch Damping to say 0.1: When banners are hanging outside, the wind will play with them. Let’s see how that works out in Poser. By now, we know how to hang a banner (top row of vertices in the choreographed group) and prepare it for simulation. In panel 4, [Reset] will bring back the default values (except for Stretch Damping, a Poser bug still not fixed in P9/PP2012 SR2. It’s not you). I can make a test simulation if I want to, to check the effects of the settings. Now (in pose Room) I rotate the camera a bit to get some side view, and by menu Object > Create Wind Force I add a ventilator. Using the various camera position (Front, Aux, …) I position the ventilator somewhat at the bottom half of the banner. I also set the parameters:

Amplitude is left at its default: 1,
Spread Angle is reduced to 30, it narrows the stream bundle width,
Range, beyond that no winds will blow so it has to reach beyond the banner at least,
Turbulence, just a bit for the fun of it.

And now, in Cloth Room, I can [Calculate Simulation…].

In most cases, the source of the wind is not what should be seen in the render, so I uncheck the visibility options in its properties. And render the result.

 

<= hanging vertical banner with wind.

Now, let’s discard the entire Choreographed Group which keeps the top of the banner in place. Then the banner will fall, while the winds are blowing. In the editor (Cloth Room, Edit Choreographed Group) I [Remove All]. And…

 

 

 

 

 

 

 

I have to add the Ground for a Collision Object (panel 2, Collide Against, check Ground). Otherwise, the cloth will fall right through it. Then, [Calculate Simulation…] again:

Note that even when the cloth is completely on the ground, the wind will keep blowing it away depending on the (dynamic) friction, until the cloth is out of range of the ventilator.

 

 

WARNING: in Poser 9 / Pro 2012, Service Release 3 (SR3), the Wind Generator in Cloth Room is BROKEN. You won’t get any effect. It’s not you, it’s a software bug

Case Study: Covering Up (08 Finish flag)

Since the car has escaped its covering cloth (see the Pin and Move II section), let me create a finish flag. So I import (or drag and drop) the 1×1 mtr X-tri cloth (in the download), give it a Black & White tile material:


and put it in upright position. I also get a standard Cylinder (Library, Props, Primitives) which I scale into a flag pole (20% overall, then 3000% in Y) and put in such a position that it intersects with the top vertices of the flag.

The next step is to animate the pole, and after that I’ll use Cloth Room to drag the flag with it. Pole first.

In the properties pane, I select my camera and switch off Animating, so I can freely move without seeing that back into my result.Next I set the pole: zRot = -90 at frame 1, zRot=0 at frame 30 and zRot =-90 again at frame 60.

In Cloth Room, I create a [New Simulation…] (and call it Finish Flag for the sake of it) with the end frame set to 90 as I need 60 frames (2 sec) for the pole to animate, and then I like another second (30 frames) for the flag to come to rest. This might look better when I’m repeating the final result.

Since (see the wireframe) the cloth polys are fine compared to the pole I might not need the extra collision options but the waving flag will collide onto itself, especially around frame 30 when the flag still is going up somewhat while the pole is coming down already. I don’t need extra drape frames at the start.

Then I [Clothify…] the flag, make it [Collide Against…] the pole, and leave all other settings to their defaults.

 

Now I have to fetch the flag to the pole, in such a way that the top vertices of the flag behave like nailed to the vertices and polys of the pole. The pole is in the collection of Collision objects, so putting the flag vertices in the Constrained Group will do.

[Edit Constrained Group…] opens the editor, and checking Hide other objects gets the pole out of the way for the moment. I select the top three rows (the pole and flag intersect somewhere between row 2 and 3), uncheck the Hide objects and close the editor.
Note: when I forget to uncheck the Hide option I might need to make them visible again by using their own Properties setting, which might end up quite tedious when there are a lot.

For this demo I leave the cloth properties in panel 4 at their defaults (fine silk-ish), save the scene, and [Calculate Simulation].
It might come as a shock, but the flag falls off immediately. The Constraining seems to be without effect.

Now I do have two options:

  • Animate the flag itself
  • Change the pole

Animate the flag

I [Clear Simulation] in Cloth Room, enter Pose Room, select the flag, goto frame 1, open the (menu Window >) Hierarchy editor and I drag the flag under the pole:

 

 

This makes the pole the Parent of the flag, and the flag the Child of the pole. Hence it will follow it’s movements.
An alternative way to do this is: menu Object > Change Parent (NB: menu Figure . Set Figure Parent won’t work as the flag is a prop, not a figure).

Now I have to tell Poser that some vertices of the flag should not follow the dynamics simulator, but should follow its animation (which results from following its parent, the pole). So, in Cloth Room, I [Edit Choreographed Group…], I click [Add Group] and I select the _constrained_ group. This puts the previously marked vertices into the other group.

To avoid confusion, I also [Edit Constrained Group…] and click [Remove All]. Actually, as each vertex should be in one group only, I would expect this group to be empty after the transfer but apparently Poser it not working that way when using the Modify Selection buttons. Maybe a bug, maybe a feature J.

Anyway, after [Calculate Simulation] I get the result I wanted, as the figure at the left shows (frame 33).

 

 

 

 

 

 

Change the pole

When you look closely to the wireframe of the pole, you will notice that it offers some vertices at the caps, but the main body is a set of very long polys from one end to the other, without any intermediate vertices. So when the vertices of the flag in the Constrained group look for pole-vertices to track, they hardly can’t find any. The constraining is a (cloth) vertex to (collision object) vertex relationship, not a poly-to-poly or a body-to-body one.
In other words: I want to nail the flag to the pole, but no nails are used. So I can look in the Library for a cylinder with several intermediate points, and shorter polys along the body. In Poser 9 / Pro 2012 the Morphing Cylinder prop is a nice one. It needs some extra care as the point of rotation is in the middle and not at one end so is has to be shifted first, but okay.

As you can see, it does not offer that much extra vertices and after [Calculate Simulation] I do find some improvements, but not that much. The flag is nailed to the pole but given all the forces on the flag, this small amount of nails can hold the flag for just a few frames only.

Conclusion
When using Constrained grouping, ensure that the cloth vertices meets enough object vertices to make the constraining actually happen. Objects with a low mesh-density or areas with large polys make the constraining hard to establish.

But as I illustrated, a simple animation of some vertices in the cloth can do the job as well, in some ways. And I illustrated the use and differences between the constrained and the choreographed groups.

Case Study: Covering Up (09 Simple Examples)

In this chapter I’d like to demonstrate some simple uses of cloth simulation.

With a statue, where I did exclude and include the figure in the set of collision objects:

A table, covered with the round HighRes TableCloth (standard Poser 9/Pro 2012 Library prop), and some clothes thrown over a chair. Just drag them in place and – literally – drop them.

Case Study: Covering Up (10 Advanced Examples)

Clothifying hair

Cloth simulation might be a way to turn Conforming Hair into Dynamic.

Luka Hair, by SWAM (2012).
Conforming hair strokes can be turned into dynamic by treating them like cloth. This make them bounce in animation, and swirl in the wind.

The large amount of fine hair strokes might bring a lot of work when I’d like to clothify them all (separately) but the fine structure might work out quite well in not too extreme conditions.

And… why should I clothify all strokes, perhaps I can do with the top ones only.

A Chain of Links

In the finishing part of this tutorial, I’ll make a swaying chain of iron links:

The links themselves are simple Torus primitives, which I shrunk a bit, opened up (zScale 50%, fatness 0,1) put in a row and I rotated the even ones a bit as the objects could not intersect:

This started the journey along the ways that could turn this series of links into a swaying chain. I will tell you about the mishaps first, and finish with a reasonable successful one.

Simple Clothifying

I open Cloth Room, start a [New Simulation…] and use [Clothify…] on all links 1..9, while the first (leftmost) link #0 is marked a collision object using [Collide Against…]. The alternative is clothify that one too but to put it completely in a choreographed group (which will freeze it, as I did not apply any animation on it).

The idea is that the links will fall (except #0) and each link 1..9 is stopped doing so by the link next to it. As all clothified links are considered pieces of the same one cloth, I’ll need to check the Cloth self-collision option in the [Simulation Settings…].

I also must turn the clothified links into steel ones: stiff compared to their density (mass), and dense compared to the world around them. So I raise the various Resistances to their max, while reducing Air Damping considerably.
When running the sim, I found out it did not work. The first clothified link did stick to the collision object link left to it but the chain broke at the next link. This means that the chain is moving too fast for the simulation to handle the collision, and pumping up the Steps-to-Frame settings in the [Simulation Settings…] is actually the only way out. But to what extent?

The image above shows the result of Steps set to 128 (the sim takes 10 sec/frame) and further testing reveals that Steps set to 512 (40 sec/frame calculation time) only improves the result a little bit.

Altering the collision parameters has no effect, as these concern the interaction between the clothified objects and the collision objects only. And the breaking chain shows that the issue is in the interaction between the clothified objects themselves. 


So, this is not the way.

The Helper Object

My next attempt introduces a simple, long and small cloth plane: the Stripe.

I put the leftmost vertices in a Choreographed group to fixate the Stripe in space, and I gave it the maximum Resistance parameter values similar to the steel links, except for Folding to prevent it from behaving like a steel plate.

Then I ran the sim calculations and found out I needed say 600 frames to give a full right-left-right sway to this stiff object.


Now the question was: how do I connect the steel links to it? I can

  • Parent them to it
  • Attach them as (hard) decorated groups
  • Constrain them to it

Parenting the Links
So I made the Stripe the parent object for all Link objects. Would they follow the movements of the Stripe?

No, they did not, for a simple reason. Parenting implies that the rotation, scaling and displacement of an object as defined by its local origin and axes follow the same of its parent object defined by its local origin and axes. But… the sim calculations do not rotate, scale or displace the Stripe object as such. They produce a morph, displacing all the individual Stripe vertices relative to the Stripe’s local origin and axes, but the local origin is left untouched.

As a result of that, the Link objects are not going to move either. This is not the way.

Decorating the Stripe
Now I used the sim for the Stripe, added all Links to it while clothifying them all. Then I put all vertices in a (Rigid) Decorated group, for each Link. So, actually the sim works on the Stripe, and the Links were expected to follow.

Well, in my simple test they did not. The point is, a piece of cloth and its decorations are expected to be one 3D mesh. They should not share vertices not should assigning vertices to the Decorated group leave holes in the cloth, but there should be some edges in the mesh connecting them. Like a button on a jacket: both are separate but a little thread stitches them together and prevent the button from falling off.

In this case, the stitching thread is missing. The Stripe and the Links are separate objects, and there are no edges connecting vertices of the one to the other.

Constraining the Links

Next idea: what if I treat the links as individual, clothified items like I did at the start, but let each of them follow the chain-stripe the closest as possible? That means: next to the sim which creates the movements of the stripe, I make a second sim containing all the links, and contains the stripe as a collision object. Each link then has a serious Constrained group, relating the link to the stripe. Since this relationship is used at the vertex level, the links can be expected the movements and deformations of the stripe to the closest. At the same time the links are not really hanging to each other anymore (or at least far less), which might prevent the issues mentioned previously.
To prevent the links from slipping along the strip I raised the Frictions, and while I kept on having issues with links snapping off, I solved them by raising the Collision Depth (and altering the other settings as well)

Of course the sim had to be as long as the movements of the chain stripe (600 frames). As I kept having links with intersecting polys (not believable for steel), and snapping off during the sim, I checked the other options and started raising the Steps per Frame. Simple: the intersecting objects suggest that the speed at which they collide is too high to handle, so I have to consider smaller steps in the sim or: more steps per frame.

I ended up at 128 steps per frame. Each frame required about 40 sec to calculate with this amount of steps and all options switched on. Times 600 frames make 24,000 sec = 400 mins = about 7 hours. I do have a fast machine (i990 @4GHz) but this was a typical overnight run.

The result is okay, at least for the first 400 frames. From then on the links suffer noticeably from being clothified: they start getting a deformed shaped in quite an un-steel like way. But anyway, this ‘constrained to the stripe’ seems to be a promising approach. Wild and large chain movements might need some more elaboration, by my girls can wear a chain for a belt from now on. Simulate a normal cloth stripe (belt) first, then constrain the links to it and simulate the links.

For rendering, I gave the links a rough greyish material with some shine to suggest a rough steelish feel, and I made the stripe itself invisible as it’s a helper object after all.

Dynamics I – 1 Intro

Download this tutorial in PDF format (0.3 Mb).

At the Doorstep

Actually, this tutorial has no real Beginners level. But instead I’ll give you some Cases Studies on the basics of Hair Room as well as Cloth Room, plus some Checklists for the virtual hairdressers (Hair Room users and stylists), the virtual fashionata (Cloth Room users) and the virtual tailors (Dynamic Cloth makers) amongst you.

Poser presents Dynamic Hair (Hair Room) as well as Dynamic Clothes (Cloth Room). They nicely respond to gravity, atmosphere and wind, collide to bodies and objects, and stretch and fold according to various material definitions.

In this tutorial, my assumption is that you have visited those rooms a few times, peeked into the Poser Reference Manual about them and tried some basic tutorials. If not, I suggest that you first check out my practical mini-tutorials:

For lots of people, these Poser Rooms are more like a Wizards Den, or an Alien spaceship cockpit. Don’t be ashamed: especially cloth and fiber simulations are a serious billion dollar science business. With a lot of universities and commercial innovators involved and a shipload of patents pending. And it does closely relate to the real world, which might bring some high school physics onto the desk as an aid in describing that world. And it does relate to the fine details of 3D software like Poser itself, like the structure of object meshes and the way animation works. And everything hangs together. And everyone uses it under different conditions, with different meshes, for different purposes, and so on. It’s not you.

It’s really a different piece of cake than just loading a dress or a hairdo from the Poser Lib, and clicking Conform To…

Next to that, in lots of situations, using these functions present operational problems. Simulations going wild, extreme poke-throughs, collapsing results and frantic folds and crumbles are just some examples from Cloth Room alone. Don’t be ashamed here either, advanced simulations for fluid dynamics, for weather forecasts, for building structure behavior under wind and seismic events, for economic forecasting, and for any other form of scientific or industrial research do suffer from these effects in their own way too. Again, it’s not you.

I can’t solve all those issues in every case. But the least I can do is present you some guided tours around, considering the global lines as well as the fine details, and present you some rules of thumb on the way. This will at least turn the Wizards Dens into some organized ones.

I – Beginners level
Well, to be frank, I’m not sure there is any. This is because there are so many sources of information on this level, that I see not much value adding more to it. From the Reference Manual that comes with the package, Books (up till PoserPro 2010 a Tutorial Manual was supplied, from now on Smith Micro sells some good books for practical or artistic Poser usage), and tutorials, videos and forum threads all over the net, free and sometimes for sale. Renderosity supplies a wealth of all that.

But I’ll give you some Cases Studies on the basics of Hair Room as well as Cloth Room, see the next chapter. Plus some Checklists for the virtual hairdressers (Hair Room users and stylists), the virtual fashionata (Cloth Room users) and the virtual tailors (Dynamic Cloth makers) amongst you.

II – Intermediate level

That’s supported, by various Case Studies, and by part II of this tutorial offering a Quick Tour around Hair Room, a Quick Tour around Cloth Room and a Quick Clues and Recipes chapter on resolving the most common Cloth Room issues, like sims going wild and meshes breaking up.

As Hair Room is relatively simple – as far as theory is concerned, you just need to build experience by practicing it – everything beyond the Quick Tour chapter about it will be concerning Cloth Room. This is like the real world: digital clothing is a high end worldwide industry, digital hairstyling is not.

This part intends to help you making the steps from a Beginning to an Intermediate user of the Hair and Cloth Rooms.

III – Advanced level
This is the in-depth section on Cloth Room details, presenting some real understanding of cloth simulation and cloth parameters, related to the real world as well. Understanding clothes means understanding the real world, which sometimes implicates using some basic high school physics (mechanics, geometry) too. Sorry for that.

The main complexity of Cloth Room is that Dynamic parameters, mesh characteristics, real world physics and computer simulation peculiarities all interact to mimic cloth behavior to a believable level. The Sim Side kicks off this part of the tutorial by looking at things from a Cloth Room user perspective: which dials, what values, etc. The next Meshes and Sims chapter comes from the other side: what can be expected when meshes of different geometries are used in simulations with various parameter settings, for the cloth as well as for the simulation itself? What are the causes of the artifacts and problems, and what to do about them? In my opinion, high end garment makers as well as artists pursuing high quality results can benefit from raising their awareness to this level.

The last Real World chapter of this part tries to find real world values for the various cloth behavior settings (dynamic parameters), tells how I did it and how you can find some yourself. And all limitations thereof. This is the physics and math heavy one. When you feel uncomfortable with that, just skip it, or scan over it, or pick the tables with results only.

IV – Background level
Cloth simulation is not just a Room in Poser, it’s an industry, really. And since Smith Micro is not the first owner – let alone the creator – of Poser, and since the cloth simulation module already existed before it was brought into Poser, addressing Cloth Room issues to Smith Micro is a well advised but not a guaranteed route to the final answers on all issues. Yet.

As a decent mutual understanding is key in maintaining good relationships, I wrote Poser Features in Perspective to give you some historic background on various Poser functions that receive a lot of debate. Cloth Room, FireFly rendering and the evolution of the Vicky and Mike characters, for instance. Especially users thinking about the future of Poser might be interested in a small blast from the past.

For those curious about the peculiarities of cloth simulation in general, I added Cloth Simulation in Perspective. It’s mainly about the behavior of 3D meshes for cloth, so especially Dynamic Garment Makers (virtual tailors) might be interested.

Understanding cloth and having a mental model of the physics involved is necessary but not sufficient to make effective and efficient simulating systems. Creating those systems is a world in its own right.

Especially those with an engineer’s way of looking at things might be interested in this mini tour through the deep down dungeons. Crash Course on Math, Physics and Sims really is the math and physics loaded chapter.

Any use of the underground escape tunnel brings you into Muppets Lab ‘where the future is made today”. You have been warned.

Dynamics I – 2 Case Studies

The Case Studies on Cloth Room and Hair Room are not included as chapters in this document, but are provided as separate mini-tutorials. Inevitably, each Case Study will address multiple topics, at various levels of experience.

A

Hair or Cloth

B

Novice, Intermediate, Advanced

C

Using wind force

D

Using animation

E

Fixing issues

F

G

H

I

The matrix below gives some cross reference, supporting you to find the cases of your specific interest.

A

B

C

D

E

F

G

H

I

Hair Room basics – hairy stuff
(put fur on an object)

H

N

 .  .  .
Hair Room basics – photo shoot
(get hair on a figure)

H

N

x

 .  .
Cloth Room basics – covering up
(put cloth on an object)

C

N

x

x

 .
Cloth Room basics – dressing up
(get clothes on a figure)

C

N

x

 .  .
Cloth Room – using animation

C

I

 .

x

 .
Cloth Room – clothes in animation

C

I

 .

x

 .
Cloth Room – fixing conforming clothes

C

I

 .  .

x

Cloth Room – fixing pits and bends

C

I

 .  .

x

As Case Studies will emerge continuously, please refer to this page for the most actual overview.

Dynamics I – 3 Checklists

Hair Room users Checklist

  • Beginners: consult the Case Studies on Hair Room first. This tutorial has no real, detailed Beginners section.
  • Watch your units.
    Poser units can be set in menu Edit > Global Preferences > Interface tab. Internally, Poser works in Poser Native Units (PNU), the translation is done in the user interface. Scripts, which circumvent the user interface, should adhere to PNU.
    Hair length and Variance are expressed in user units. Your 1.0 (inch) is the same as my 0.00254 (meter).
    Hair Density is expressed in square user units. Your 3.0 (hairs per square inch) is the same as the default 32,000 (hairs per square PNU).
  • Watch your counts.
    Hair Density tells the amount of generated hairs by the number in parentheses. Multiplied by the amount of vertices per hair (panel 3, bottom parameter) make the amount of vertices of the hair element at hand. Adding up over all hair elements make the total amount of hair vertices in your scene. Multiplied by say 1kb make the amount of memory required to render.
    For instance: the Toon Puppy has about 37 object parts to be furrified. Using the value from nature; 1,000,000 hairs per square meter generates 1,4 million hairs. At 16 verts / hair make 1,4M * 16 * 1Kb = 20Gb of RAM required for rendering, and might make your system fall over. Bringing down the Hair Density a tenfold, and halving the verts per hair make a requirement of 1Gb for rendering, which can be met by any system.
    So before you start any styling: set the population and other mentioned dials as required for the final result and make a test run, before you’ve got to rework everything from the start in order to get your render out.
  • Watch your Pull.
    These three parameters define an angle between two adjacent edges of a hair. The more verts per hair you set, the more edges a hair is made of, and the more the hair will bend for the same Pull values.
  • Watch your Bend Resistance.
    Because for the result of the simulation, this appears to be the most influential parameter of all.
  • Time your Styling.
    Clicking anything in panel 2, even without changing, nullifies the results from the Hair Editor (the one behind [Style Hairs…] in panel 3). The Hair Editor has no Reset button, but the [Grow Guide Hairs…] one serves a good alternative. And any edit of the Growth Group itself requires the [Grow Guide Hairs] button to be clicked anyway.
    The styling holds after alterations in panels 3 (styling) or 4 (dynamics), but of course the Verts per hair will affect the ease of styling and the result as well.

Cloth Room users Checklist

  • Beginners: consult the Case Studies on Cloth Room first. This tutorial has no real, detailed Beginners section.
  • Watch your steps, and your Garment.
    Just ensure you understand Constraint Groups at least enough to fixate a piece of clothing in space, and then just hang it out for 30 or 60 frames with all default settings. Inspect the simulation.
    Do things fall off? That are candidates for the Soft and Rigid Decorated Groups.
    Check one piece at a time, and check all of them. Anything you knows before, saves time later.
  • Does it bounce and wiggle?
    Or just the opposite? Does it stretch too much? Can you define the kind of cloth you want to mimic in terms of the Dynamic parameters? It’s hard to mimic something you don’t understand enough. The same holds for the physics of nature. Cloth Room mimics physics. Understanding cloth and understanding physics help a lot in managing Cloth Room. In many cases, the simulation is wrecked by the default settings from the start (eq long dresses stretch far too much).
  • Can it be done?As cloth simulations relate to real world physics, things that are hard to do in life are almost impossible to bring to an end easily in Cloth Room. 30 frames of simulation represent 1 second. Some poses or moves cannot be taken or made within 1 second in life. Some moves cannot be made at all, while wearing specific clothes. Tight thick leather pants hamper bending, in life, and in Cloth Room. Long dresses hamper wild dancing or taking hurdles. In Cloth Room too.
  • Do you need All Dynamics?
    As Cloth Room is a nice place to be but conforming clothes have value too. You might need to clothify only a few portions instead of the whole lot. You can put portions of a piece into choreographed or constraint groups, or un-clothify them as a whole.
  • Do you need All Sims?
    When there are more cloth pieces in the scene, some can be combined in one simulation. Others can be combined through multiple simulations, when run (and created) in the right order. Planning ahead might be worth the trouble.
  • Do sims crash or take forever?
    Check and avoid poke-throughs at the start, adjust the collision objects at the start and animate them to the required settings and poses at the end (or sooner).
    Then increase collision depth.
    Then check the collision options (vertex against poly etc)
    Then increase the Steps per Frame
    Check the Quick Clues and Recipes chapter (in part II) for more.

Garment makers Checklist

  • Tailors don’t go naked.
    We do know the tale of the emperors (lack of) clothes, but there never was a tale about tailors going naked. So, make sure you master some basic user skills too, to understand the behavior of your garments.
  • Do the Draping Test.
    Just hang out the garment for 30 or 60 frames and ensure nothing comes off, and all extras are put in the appropriate Soft and Rigid Decoration groups.
  • Be aware
    The Poser manual explicitly states that the Cloth Room prefers single sided, well welded meshes for cloth. You do adhere to that, do you?
  • Understand your Risks and Chances.
    Pockets, buttons, zippers, belt-loops, stitches and pads, all other sorts of accessories place a challenge onto dynamic cloth. Make them Soft or Rigid Decoration items, use Morphs or Displacement maps, model them into or onto the garment but in all cases: know what you’re doing, why, and what the effects are for the use of them.
  • Understand your Mesh Geometry.
    X-tris are to be preferred over ZigZags and Quads (can be compensated for in parameter values), Diagonal tris are worst in simulation behavior.
    Quads make good non-woven cloth (leather, fleece, rubber, …), tris make good woven cloth, hexes make good home knit sweaters.
    Small structures with small polys behave like thinner cloth than structures with large polys, opposite to what most people expect. So varied meshes will show a varied behavior within the same piece of cloth, which will seem unnatural to the user.
    Finer structures reduce crumbling artifacts, especially in quads.
  • Deliver at appropriate detail.
    Clothes wear better when they match the vertex-density / poly size of the figure wearing them. Vicky measures about 20,000 cm2 for 80,000 vertices, that’s an average vertex-distance of 0.5cm (square root of 20,000 / 80,000). Weight mapping is introduced to improve even on that.
    Marvelous Designer states that distances of 20 to 40mm are nice for rough testing (dresses, shirts, figures standing up) but final results require 5 to 10mm.
  • Mind your licensing.
    You will deliver a decent OBJ mesh file, you are the rights owner. Just do one OBJ for each piece of garment, there is no added value in having a quad and a tri version. All Poser specifics, Cloth Room groupings and parameter values included, are in the CR2 file. You may supply multiple of them. Preferably in ways that match material settings, so when a skirt has stripes made of leather, they look like leather and behave as such. And when they are transparent or lace, they behave as such (which is rather different from leather).
    Grant or even encourage people the rights to distribute CR2’s, so they can enrich your product.
  • Document your product.
    Which groupings and parameter settings are delivered with the garments? What have you done to ensure proper dynamic behavior? What do people have to do to handle your products as intended?
    You are not selling to click-and-drag users only, but some of them are. Serve them all.

Dynamics II – 1 Quick Tours

This part intends to help you making the steps from a Beginning to an Intermediate user of the Hair and Cloth Rooms. It offers a Quick Tour around Hair Room, a Quick Tour around Cloth Room and a Quick Clues and Recipes chapter on resolving the most common Cloth Room issues, like sims going wild and meshes breaking up. Various Case Studies (see part I) also contribute to this goal.

Download this tutorial in PDF format (1.0 Mb).

As Hair Room is relatively simple – as far as theory is concerned, you just need to build experience by practicing it – everything beyond the Quick Tour chapter about it will be concerning Cloth Room. This is like the real world: digital clothing is a high end worldwide industry, digital hairstyling is not.

Dynamics II – 2 Quick Tour: Hair Room

The Cloth Room and the Hair Room do have some similarities. The layout of the user interface, with four panels, panel 1 defining the sim and panel 4 defining the dynamic parameters and starting the calculations. The presentation and organization of the panels by the way depends on the size of my screen. On a 1280×800 laptop I might miss the extra panel with various buttons, and the panels are in two columns 1+2 and 3+4. On a 1280×1024 desktop it’s completely different.

Panel 1. Growth Group

A Hair Sim is called a “Growth Group”. [New] adds a sim to the list of sims, [Delete] takes it out. The name of the group is the only parameter at this level, so we’ve got [Rename] to alter the setting(s). The little triangle presents the list of Hair Sims to pick from, and shows the selected one. [Edit] opens the Poser group editor in polygon mode. It requires either a prop or a figure and one of its body parts selected in preview, and from that prop or body part poly’s can be selected into the group. Applying the Smooth Lined or Flat Lined mode in preview helps selecting.

If no figure and body part are selected, Hair Room turns inactive, I can’t even create a New Group then. As far as Hair Room is concerned I cannot make a New Group for a Body (but: parts only), but I can try to make a group for a Camera. However, Cameras don’t have polygons so no group will be made effectively, but no message will tell me.

Let’s stay on track, and select part of Andy’s skull into the hair group. This will have the following effects:

  • A group with the appointed name is added to Andy. This implies that those polys are in the Head group as well as in the Andys_Hair group. I can separate those polys, turn them into a prop using the Group Editor, and save them with all the hair settings into the hair section of the Library.
  • A prop with the appointed name is added to the scene too, but this prop only contains the hairs which I’m going to define. Of course this prop is parented to the head.
  • Those hairs get a material assigned as well: a neat Hair node plus some noise plugging into Alt_Diffuse.
Default Blonde Brown Red Black Grey Grass
Root color* RGB 165/151/110
HSV 30/56/129
Default HSV 10/90/50 HSV 5/160/80 HSV 0/0/0 HSV 0/0/80 HSV 75/220/50
Tip color * RGB 236/217/158
HSV 30/161/185
Default HSV 10/90/80 HSV 5/160/100 HSV 0/0/30 HSV 0/0/200 HSV 75/220/70
Specular 50% grey 20% 15% 25% 20% 30% 50%
Highlight 0.04 0.1 0.1 0.1 0.1 0.075 0.05
Root Softness 0.1 0.1 0.1 0.1 0.1 0,1 < 0.1
Opaque in shadow NO YES YES YES YES YES YES

* Poser HSV has a max of (240,240,240) and is used here, Photoshop HSV has a max of (360,100,100) and the parameters have a different meaning.
In Poser, full color is (any,240,120). In Photoshop, full color is (any,100,100).

Later on I’ll point out why having a single Growth Group for all the hair is not very handy. It’s generic practice to turn the selected part of Andys head into a “SkullCap” prop first, and to define several portions thereof as separate Growth Groups. Common portions are: Side left, Side right, Back, Top left and Top right.
Then this entire SkullCap can be saved into the Libraries Hair section. Recommended. This makes me end up with multiple sims, which I can recalculate one by one, or all in one using the menu: Animation > recalculate Dynamics > All hair.

Panel 2. Growth Controls

Next the selected Growth Group can be populated, I just [Grow Guide Hairs] and each vertex in the group grows one. When I like more guide hairs for more detail in the coupe, I have to refine the Skullcaps mesh density in a 3D editor.

A Guide Hair can be shaped etcetera, and then works as an example for surrounding generated “populated” hairs. This way I don’t have to model each hair individually while still having good control over the details.

The general definition holds for all those guide hairs; each time I change a value the preview gets updated, I don’t have to click the [Grow…] button every time.

Hair Length and Length Variance are in my own Poser units, so if my Poser is set to present them in meters, then 0.02 means: 2 cm. If I set them accordingly and change my units preference to inches, I’ll find the Length setting altered to 0.78 (after re-entering Hair Room or re-selecting Andy’s head).

Note that variance is absolute, so Length= 0.10 and Variance=0.05 creates hairs between 5 and 15 cm, but reducing Length to 0.01 creates hairs between -4 and +6 cm. I don’t think negative hairs grow inwards, but you’ll never know. So: don’t let your Variance exceed your Length setting.

The Pull parameters define the curvature of the hairs relative to the local (skull) coordinates. That is:

  • Pull Back affects the hairs aside and on top, but not at the back as these were pointing backwards already (minus Z direction)
  • Pull Down similarly will not affect eventual hairs under the chin, as a beard grows downwards (minus Y)
  • Pull Side does affect all hairs.

Note that this is the “natural” curvature preliminary to all further styling and dynamic effects like gravity and wind. The effects of these Pull parameters are related to the Hair Length, and to the amount of Verts per hair. In order to bend a 20cm hair fully backwards I need a ten times larger Pull Back value than for a 2cm hair. The other way around; short hair takes very small Pull values to show a considerable effect.

Length=0.1, Verts=5 Double length Double Verts

Panel 3. Styling Controls

Panel 3 presents some generic detailed settings, plus an advanced styling editor (click: [Style Hairs..]).

Hair Density controls the total amount of hairs, or: the amount of populated (and rendered) hairs per guide hair. Since showing all hairs can delay the preview, this can be turned OFF. Firefly renders will always show all hair, this option is preview only. Hair Density shows two numbers, the bright one next to the dial states the amount of hairs per square user unit. The default is 32,000 hairs per square PNU (Poser Native Unit = 8.6ft = 262cm) which is the equivalent of 4657 hairs per m2 or 3.0 hairs per inch2. So when various groups have matching hair growth, this number must be the same. The dimmed number between parentheses shows the amount of hairs that will be generated onto the hair growth area.

Hair thickness is controlled by Tip and Root Width. Hair will get thinner at the ends over time, so regular haircuts will leave thicker tips compared to long hair which sees a comb or brush only. Blonde human hair is thinner at higher density, black is thick with medium density, brown is medium thickness/medium density and red is medium thickness, low density. Animal hair is thick and dense, although most animals have an undercoat of short fine hair and an “overcoat” of thick longer hair.

Default Blonde Brown Red Black Animal Grass
Density 0.45/cm2 300/cm2 200/cm2 150/cm2 200/cm2 100/cm2 4 / cm2
Head / 500cm2 235 150,000 100,000 75,000 100,000 400,000 *) 400,000 **
Thickness 1.0 (mm) 0.05 0.10 0.10 0.20 0.50 2.0
Tip – worn long 0.4 0.03 0.05 0.04 0.06 0.01 0.2
Tip – worn short 0.4 0.04 0.07 0.06 0.12 0.1 1.0
Tip – haircut –long 0.04 0.08 0.08 0.16
Tip – haircut –short 0.05 0.09 0.09 0.18

*) for a medium size dog (Labrador) which measures say 4000cm2 in total. A small dog (Lab puppy) or a large cat measures say 2000cm2, a tiny cat say 1000cm2, a mouse say 20cm2.
**) for 10m2 grass area, as around a picknick table

Hair grows at a rate of 1 cm/month and lasts 30 to 60 months, so hair longer that 60 cm is exceptional. With on the average 100,000 hairs, lasting say 50 months, one loses / creates about 2000 hairs a month = 70 per day. Trivia.

In cases of straight (non-curly) short hair, animal skin, fur coats, grass etc this might be it. Hair like that has no dynamic behavior on wind and gravity, and can simply be used as is. With the Pull values, the density and the thickness and perhaps some additional styling for separate guide hairs (see: Hair Editor) the job can be considered done.

Clumpiness concentrates the populated hairs around the guide hair and make the hairs grow towards each other (figure, clumpiness=0 and 1)

The Kink parameters define wave and curl. How much (Strength, amplitude, 10=very mild, 100=rather present, 1000=all over the place), how large (Scale, frequency. The higher, the more waves I get. 10=mild, 100=rather present, 1000=frizzy. Minimum 1) and where it starts away from the root (Delay – so the first part is straight, and curls can start at ears height or so. In %, so 90 will make the last 10% curly).

Default Strength 3 => 30 Scale 100 => 30 Delay 0.3 => 0.6 Verts/hair 50 => 5

Since each hair is a 3D mesh, low resolutions can hamper any detailed shaping. Verts per hair (from 4 to 100) can affect that. For a hair of 20 cm, 20 verts imply edges of 1cm between them. This is the body resolution of Android Andy, Vicky4 goes twofold (5mm). I guess that good hair should about equal the body density, which implies that 20cm hair requires 20 to 40 verts. I would double it in a close-up head portrait.

In the meantime, all hairs in the entire group are still treated similar. So:

  • Question: can I make hair shaving patterns?
    Not as such, as it requires some image map to do so and the hair length is not image-map driven. Also, the concept of guide hairs that pass all their properties to populated hairs does not support the “shaving patterns” idea very well. But for short hair (which is always required to shave patterns) it might pay off to experiment with some image mapping in the Materials Room. Portions of hair can be made transparent then.
  • Question: can I make color patterns?
    Same as the above: it must be done in the Material Room, where root and tip colors can be made image-map driven. See the Case Study.
  • Question: can I vary the hair length?
    Well, a single SkullCap can consist of various Growth Groups, each having its own hair length setting. Next to that, each individual Guide Hair can get its own length from the Hair Editor.

Hair Editor

One major warning beforehand. The Hair Editor sets properties for individual guide hairs. All the settings (for the Growth Group at hand) will get lost the moment any change is made, dial is touched or value field is opened, in the generic Guide Hair settings in panel 2. This, by the way, is the only way to reset any settings from the Hair Editor.

During the edit, a hair root will keep its place – and direction, as set with the Pull parameters in panel 2. So, selections are marked by the tips, and moving, rotating, twisting and so on affect the tips. That is: a portion from the tip towards the root as set by the slider underneath. Whether or not an operation also lengthens or shortens the hair, or keeps the hair length intact, can be switched on/off. Again, lengthening etc starts halfway the hair, according to the tip/root slider. Except for the Length dial, which affects the whole hair. All hairs can be dealt with individually.

Note that each guide hair represents a population of hairs around it, all those hairs will present themselves the same way. Details from twisting, lengthening nuances etc might get lost in the crowd.

And again: to un-style all hairs, I just have to click [Grow Guide Hairs] or to touch anything else in panel 2 and I’ll get new ones according to the settings in panel 2 and 3. I’ve found no way to un-style individual hairs, or selections.

Panel 4. Dynamic Controls

After growing and styling Andys hair I can expose it to gravity and wind, using the [Calculate Dynamics] button, and [Clear Dynamics] when I don’t like the outcome. I have noted that the calculation adds some draping frames itself, then takes the whole and nothing but the whole animation range, does not present any frame-timing in the progress meter and does not always respond very well to the Cancel button.

Do Collisions is worthwhile to check, also checking Collisions in the properties of the objects around the hair (like the head) is not only necessary but also present a performance killer: calculation times go up drastically. So I do my test runs with this option unchecked, and check it on when my satisfaction has gone up enough. Checking the option by the way only makes sense when there is something to collide, which is not the case for short hair and alike.

Next I’ll discuss the individual parameters, with their respective default. There is no [Reset] button to call in those defaults after playing around. Compared to Cloth Room, none of the Hair Room parameters makes real sense in a physical way, and none of them is properly testable either. I tried, putting a flag of hair in the stream of the wind generator. It did not produce workable results.

Gravity (-0.0003). As hair is organic its specific weight can be estimated at 1 gram/cm3, which translates to 0.0003 gram per cm of hair with an average radius of 1mm. Which is according to the defaults in panel 3, but quite a lot compared to nature. Ten- to hundredfold too high actually, as 0.1mm might be a better radius for real hair. However, -0.00003 (one magnitude down) fails to get the hair down properly, and -0.003 (one magnitude up) drags down the hair so much that most styling gets lost.
Blonde hair can be quite less (half), black hair needs more (double).

Air Damping (0.05) is a reasonable value – when comparing to cloth – given the weight and the amount of hairs per cm2 and considering that long hair in the wind is a few cm thick. Since a hair needs to be say 40cm long to make it from the forehead to the neck, I guess that shorter hair should get lower values.
But I have to make the changes and adjustments myself, as altering the parameters (like Length, or Density) does not change the effect of wind on the hair.

My guideline: the ratio Air Damping : Gravity is 170 for the default (Brown hair). Blonde hair (thinner, more hairs per cm2) has a higher ratio, up to 300, Black hair a lower ratio thanks to a higher weight (120) Red hair lower also (150) due to less hairs per cm2.

Spring Strength (2.0) & Spring Damping (0.95). The Damping is assumed to reduce the bouncing of the hair, and so it does indeed. The Strength itself is a dubious parameter. The manual is plain weird: increasing the value should increase the springiness of the hair. And the Damping should affect the elasticity. Tell me the difference.
Anyway, I don’t see any real effects, nor in result, nor in the generated animation, between 0.2, 2.0 or 20.0 for the Strength. At least the “springiness” helps to drape and settle the hair. I tend to leave these values as they are.

Bend Resistance (0.84) is the inability of a hair to bend along its length. This appears to be a very relevant one. At 1.0 it turns the sim into a complete freeze-up. At 0.1 the hair – and especially the generated animation – is very wavy, and in the wind it turns into a complete mess. For long hair (50cm) I even found locked movements at values as low as 0.75 and an unmanageable waviness at 0.50. There are no values from physics books, so it’s trial and error in this department.
That’s why I usually check OFF the collisions in my first test runs, as I need a lot of them. Test runs, that is.

Root Stiffness (0.02) & Root Stiffness Falloff (0.33). The Stiffness takes up the Hair Root characteristics as the Pull values set in panel 2, to the specified extent. The rest is taken by the other dynamic characteristics. And the Falloff tells for which part of the hair, so 0.33 takes it for the first third from the root, and 1 (aka 100%) locks the hair completely: the hair becomes stiff from the root to the tip.

Default
Stiffness 0.02 => 0.2 Falloff 0.33 =. 0.70

 


Position Force (0.0) determines to what extend the hair tends to stick in the start position, where it was styled into. Like hairspray, the more you use the less gravity and wind will have effect on your hair.

Let’s test it using a serious (0.001) Pull Side. A serious Position Force (0.03) keeps the hair into position during simulation. A reduced value (0.01) relaxed this a bit, a further reduced value (0.001) freed the hair bundle completely.

Blonde Brown Red Black
Gravity -0.00015 -0.0003 -0.0003 -0.0006
Spring Strength 1 1 1 1
Air Damping 0.045 0.051 0.045 0.072
Spring Damping 1 1 1 1
Bend Resistance 0.6 0.6 0.6 0.6
Position Force tbd tbd tbd tbd
Root Stiffness 0.1 – 0.01 0.1 0.1 0.1
Root St Falloff 0.01 0.03 0.02 0.04

Last Words

Compared to Cloth Room, Hair Room presents a wealth of simplicity. Each sim addresses one well determined set of polys, guide hairs are determined by mesh density, and actually are the only elements that are manipulated in panels 2, 3 and 4. There is no way to convert conforming hair into dynamic, poke-through is no issue for hair and collision is checked on/off in Pose Room itself. So sims hardly go wild or crash unless I take the wrong set of parameters myself. They only might take time when there are many collisions involved.

Since there is nothing to convert, I either can load an existing dynamic hair object (and adjust it) or create one myself. And as I have to set all parameters myself as well, problems and bad results are either to blame on the toolkit – which is not going to change lightly – or on my own lack of experience to handle it. That is something I can change, but not by reading more on principles and theory.

This is where the Case Studies kick in. Which is where hair materials are discussed as well.