Blog

So, you need to simulate some high poly garments - maybe because they are big garments, so they have a lot of polys, or maybe because you want to capture some fine wrinkling, and to do that, you need a higher resolution garment.

Well, hopefully this page will help you deal with some issues you will likely face, that do not typically apply with lower poly garments.

The main challenge is that high poly garments are large networks of constraints from a simulation prespective, and therefore require more solver processing time to reach the expected look. You can see this simply by taking a low res garment with some solver settings that work, and then upping the resolution, but not changing the solver settings.

Using the standard Carbon Avatar Cloth demo that is included in the Carbon documentation - here on the left is frame 10, typical resolution (3K and 6K poly) garments with the standard solver settings, and the right same frame 10, with high res garments (71K & 170K polys) and identical solver settings, and you can see that the solver does not have high enough iterations to overcome the effect of gravity on these higher poly count = larger constraint networks.

Note: Total Iterations per frame = Iterations x Subdivisions).

frame 10.jpg

Easy solution - just adapt the solver settings - original values are, Iterations = 20, Subdivisions = 10 And we know from testing that Iterations = 40, Subdivisions = 50 will hold up the garments against gravity. It is going to run slower now - but at least it will simulate fine. 

Or will it?

Note: Given the longer simulation times, we highly recommend that you use the Panic Time feature to stop the simulation if something goes wrong. Panic Time triggers if a Subdivision takes longer than the Panic Time (in seconds) and it stops the simulation. With 50 Subdivisions and about 14 seconds per frame Carbon simulation time, we would set the Panic Time to 1 .

The challenge with higher solver settings is that the Carbon solver is going to try harder to converge the simulation - great for handling more polygons, but much less forgiving of any over constrained situations you may have in your setup. What do we mean by over constrained - well, for example the classic cloth trapped in an armpit with no space for the cloth. This may be forgiven by the solver with lower settings, but once we tell the solver to work harder, it is not only going to hold up those high poly garments, it is also going to work harder to resolve other situations, and trapped cloth that did not blow up with lower solver settings, might well now blow-up.

So, let's see what happens with these higher solver settings in this scene:
Ok frame 10 (on left) looks good, garments fighting gravity nicely - you can see that the additional solver effort is also pulling the garment tighter into the body. So we are good to go right?  Well not quite - frame 23, on the right, now has corruption as a consequence of armpit pincing with these the less forgiving solver settings.

corruption.jpg

Unfortunately, this animation has the upper arms intersecting the body. That was not an issue with the weaker solver settings, but with the solver settings for high poly garments, the solver is now unforgiving of there being no space for the cloth in the armpit.

You can visualize the intersection on the Carbon Collider using the Carbon Collision Analysis with the Filtering Gap set to the Carbon Cloth Thickness. (Please note that Carbon Cloth for Maya does not yet support the visualization of Collision Analysis.)

collision.JPG

Okay, so here we can see the problem areas:

collision analysis.JPG

There are a couple of ways to deal with this:

1) Simply select the side of the arm (rather than body) that is causing the problem and remove it from collision (using Face Group) - this is quick and simple, the arm will simply interpenetrate the cloth and that might be good enough depending on the camera angle and extent of penetration. Note: If we were to select the body faces, then the resulting visual would not be as pleasing.
2) If needed, you can go a step further and make the arm pit deformable using a Carbon Morph. This is detailed in the Avatar Morph tutorial in the Carbon documentation.

We would recommend doing (1) first to at least make sure you have a handle on all the issues and (2) is a bit trickier to set up, so only worth doing if you really need to.

Okay, so let's select the faces we do not want to collide under the arm, invert the group, create a Group node and then select that group in the Collider Face Group box. Also note that we had removed the hands in the original simulation using a Primitive Group selection, but we can't have a Primitive Group selection and a Face Group selection at the same time, so we are going to have to also remove the right hand from collision, otherwise it is going to catch the skirt at frame 132 and blow up the simulation!

 selection1.JPG

Now, when we run the simulation, the cloth under the arm does not blow up due to it being trapped. Below is frame 23 again. Still room for a bit of collider selection tweaking and, if necessary, we could also increase the resolution of the collider geometry to give us a finer selection of faces to remove. But it is looking pretty good already.

23good.JPG

Now, we can run the simulation and generate some fine wrinkles in the top and the skirt, that are only possible with high resolution garments.

fine wrink.jpg