Iterative solver (again) [Was: Re: [ODE] Russ' plans for ODE?]

Alen Ladavac alenl-ml at croteam.com
Tue Apr 27 14:15:23 MST 2004


Hm... I don't know where you get your info from, but it does make sense. :)

So, it would be something like a mix between stepfast (keeping same joint
configurations during several integration substeps), and Mendoza's method
where you correct positions directly, not only velocities. Am I right?

Still, thinking about what Rick Baltman said on this GDC in his "Using
Verlet Integration and Constraints in a Six Degree of Freedom Rigid Body
Physics Simulation", I am under impression that even impulse corrections,
like those you describe would need several passes (at least 2-3) to converge
properly.

Alen


----- Original Message -----
From: "Anton" <kronos at mtcelestia.net>
To: <ode at q12.org>
Sent: Tuesday, April 27, 2004 09:40
Subject: Iterative solver (again) [Was: Re: [ODE] Russ' plans for ODE?]


> >>>         After playing with Novodex, I found out that they use a
> >>>         iterative solver like StepFast1(old story, every one know).
> >AL> Is that what you concluded by looking at the Novodex examples and
SDK,
> or
> >AL> did they actually tell you that?
> >    Hmm... They told us and I made my guess also. I remember Pierre
> >    has stated that they use a technique which is similar to ODE's
> >    StepFast.
>
> I am quite positive Novodex's solver works like this. At each step penalty
> impulses are applied to contacts in succession. Penalty impulses are
> calculated so that they are proportional to the contact error (note that
in
> order to get better contact stability, no impulses are applied until
> penetration for the contact gets more then some threshold) *and* remove
the
> current velocity error (if the bodies are seperating too fast, I assume
the
> solver is allowed to pull them). Penalty impulses are scaled with contact
> matrices (i.e., they are more like 'requested penalty velocities'). Once
> generated, contacts are maintained, and contact error is treated as a 3d
> vector, not just projection on the normal (to get the static friction).
> Obviously, lateral impulses are limited by the friction coefficient.
> Internally, global timestep is subdivided into several smaller chunks (but
> not too much; it was about 3 subdivisions for the box stack with 10ms
> simulation time step), but no collision detection is performed during
these
> substeps, only existing contacts are used.
>
> _______________________________________________
> ODE mailing list
> ODE at q12.org
> http://q12.org/mailman/listinfo/ode
>



More information about the ODE mailing list