[ODE] Previous timestep significance? (part 2)
Konstantin Voloshin
volk6 at mail.ru
Wed Oct 15 18:42:31 MST 2003
> I do something along these lines that does work nicely, but it alone doesn't
> completely solve the problem we're discussing -- it solves a different one.
> But it depends on the exact implementation, so why not try it and find out?
Hm-m again :) I don't quite follow what you mean. Perhaps, it's because
I still don't understand the problem we're discussing. My vision is following.
Larger timesteps may allow greater joint errors.
To fix joint errors the system applies correction velocities.
Greater joint errors result in greater correction velocities.
Smaller timesteps also result in greater correction velocities.
If the following sequence occurs:
1. A larger timestep has allowed greater joint error
2. A smaller timestep together with larger joint error produced greater
correction velocity
, then the body will jump instead of resting, as it possibly should be.
If that sequence is followed by:
3. A larger timestep occurs again, while an object is moving at high correction
velocity, which may produce much greater joint error
4. A smaller timestep together with much greater joint error produces much
greater correction velocity
, then we'll see a fast encreasing explosion effect.
Two solutions we're currently discussing are:
i) Keeping spring and dumping effects constant over changing frame-time by
changing "magical" constants in constraint equations.
This seems to eliminate the problem by making correction velocity applied
at small steps be smaller in case of large penetrations, which looks to be
"correct".
ii) Replacing velocity correctoins by positional corrections
This is supposed to eliminate the problem by clearing correction velocities
at the end of the step. In this case there wouldn't be jumping for sequences
1-2, and no explosions for sequences 1-2-3-4-3-4-... (imho)
If I'm right, both of these _are_ solutions. I also believe that the 2-nd solution
should also fix the impossibility of completely getting rid of noticeable bouncing
when objects bump into each other with some essential velocity. That's why I'd
rather prefer the 2-nd solution.
You can find more details on bouncing problem here:
http://opende.sourceforge.net/ode-0.039-userguide.html#ref103
Is this the one you told about?
VolK
----- Original Message -----
From: Adam Moravanszky [Novodex]
Sent: Tuesday, October 14, 2003 8:38 PM
Subject: Re: [ODE] Previous timestep significance?
http://q12.org/pipermail/ode/2003-October/010174.html
More information about the ODE
mailing list