Hi,
I tried the modified stiffness paprameter, but didn't find it usefull. You get so small values when getting above 4 iterations that I simply allow tweaking this value independently for edge and bend constraints in a range from 0 to 2. Technical artists are quite experienced with tweaking so I don't want to hide something from them.
Yes, that's an option, and probably having a physically meaningful parameter (like a spring constant) wouldn't be more artist-friendly than that, but anyhow I'd feel more comfortable with this method if some physical meaning could be given to the SUR parameter. I'm using a variable timestep with an upper-bound to 0.03s by now, and this gives quite different results in different machines, so I'll have to fall back to a fixed DT just because of this artifact :_)
Did you try their combination for rigid bodies and cloth? I doubt that there impulse method works. I think you need a constraint here and solve this in the same iteration loop together.
I'm not handling two-way collisions with rigid bodies yet but I'll implement it in a couple of weeks for the game I'm currently working on. The impulse method they describe appears also in Baraff's Partitioned Dynamics, and looks reasonable and fast but inaccurate... I guess there is a certain lag in the mutual effects rigid-cloth but seems to work fine in the screenshots.
I use a constant timestep. But the system behaviour varys if you a fixed timestep of 1/30 hz or 1/60 Hz. As an explanation I would argue like this: We solve a non-linear system of equations. The larger the timestep the greater the violation of the linearization I guess. For cloth simulation you never want to come to the point where convergence enters the "region" where the system becomes stiff. Convergences is mostly effected by the timestep you take and the iteration count. I don't know if you notices that (it is actually mentioned in the paper as well) we have a nested system here. The outer iterations are the Newton iterations for solving the non-linear system and the inner iterations are a Gauss-Seidel method for solving the (inner) linear system. We take here n outer iteration and exactly 1 inner iteration. I want to try 2 outer and 4 inner iteration as opposed to 8 outer iterations. Maybe this resolves some stiffness and if yes it will actually be faster...
I'm not completely sure of understanding the Newton-Rapson / nonlinear equation part of you explanation... do you mean the time iterations as the "outer" loop? It it's this, then I agree with your reasoning, and it could be said that the important parameter is iterations/second, more than timestep and iterations per timestep separatedly. Reducing the timestep would improve collision treatment at the expense of more cpu, incrementing the iteration count per timestep is not that expensive but not that useful when you pass a certain threshold...
The damping method in the paper is quite usefull and can easily be translated to the Verlet integrator. It helps for cloth that itis attached to charcters since it doesn't damp the global movement. It also let's you
make the cloth a little stiffer - so it adds some tweaking possibility
I'm not using it, only global viscous-drag damping in the verlet integrator as Jakobsen suggests. Didn't consider damping only the local velocities but leave momentum unchanged... do you model any air-drag separatedly that actually stops the clothes, then?
>> Self collisions
I only have a skirt currently and self collision is not a problem here. Why do you relate on-characters cloth and self-collision? Did you get problems through implementing it or did this solve some problems. I wanted to implemented self-collision for completeness, so is there anything I need to look into?
No no, just curiosity. But it's quite clear that having self collisions and attachments to an articulated character that may move quite fast is going to be problematic... clothes can get tangled between the arms an the torso if animations are not designed with this in mind, for example, and self-collision and cloth-character collision can interact in nasty ways. There's a paper from Baraff & Witkin about untangling clothes, I'd have a look at it if I really had to implement this. And I'd also have a "plan B" for irrecoverable situations (something like moving the particles to their original positions relative to character bones...)
>> Golub
This is indeed a book. Actually it is quite standard for matrix computations. There is also the online book >called "Templates for ..." (sorry forgot the complete name) which gives a reference for this topic. Looking in >the SOR chapter. If you can't find I will have a look for you...
Got it, it's called "Templates for the solution of linear systems", I'll have a look when I have some spare time. Thanks.
Oscar