[ODE] Contacts and multiple updates per frame

mucki michael.lacher at hlw.co.at
Fri Nov 12 10:15:14 MST 2004


Jon Watte wrote:
>>I have tried this too, and had good experience in my simulations, 
>>however I repeatedly ran into problems with contact joints. The problem 
>>seems to be that ODE behaves badly (sometimes) when a contact joint is 
>>kept for more than one update (probably because thebodies are already 
>>seperated again in the later updates ?).
> 
> 
> You have to COLLIDE AND STEP for each time (and empty the joint group). 
> Running more than one step with the same contact joint is not going to 
> do the right thing (as you found), and it may also allow tunneling if 
> you find you step many steps in a row without collision.
> 
Ok, but isn't the tunneling the same when I just do one big timestep 
(with varying stepsize) ? I can handle this problem well, so if the 
method of having multiple steps with collisions only on the first one is 
like variable timesteps but with more stability, I can certainly live 
with that.

> 
>>however, this brings down the speed to a crawl, as collision takes a lot 
>>of time.
> 
> 
> You should profile your collisions and figure out why. For example, the 
> collider bits help a lot in avoiding things like static trees colliding 
> with the static ground. Also, make sure you use a HashSpace space, or 
> better for your world space; the SimpleSpace is not very efficient.
> 
I am not using the ODE collision system, and my scene database is based 
on a balanced tree, with frame coherency code and lots of other 
improvements. But actually I was more interested in a more generic 
discussion about "what would be the best solution if the accurate one is 
too slow".

mucki


More information about the ODE mailing list