[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