[ODE] box-box performance
Peter Amstutz
tetron at interreality.org
Tue Nov 26 01:34:10 2002
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I've tried out the new box-box collision code with the "phystut" program
in Crystal Space. I first had to fix a problem with the crystal space use
of ODE (it didn't use the dContactSoftCFM flag when generating contact
joints, which caused terrible instability problems) but now that it works
and is stable, I can't have more than ten or so boxes before the
simulation bogs down to unusability.
The environment consists of six static collision boxes which are walls of
a room. The user can move a viewpoint around and toss a box or sphere,
which hits the ground, tumbles (or rolls) a bit and comes to rest. As I
said, once there are about 10 boxes in the room, the framerate drops
precipitously and the simultion totally bogs down, even if all of the
boxes have come to rest and arn't moving at all.
My suspicion is that there are a lot of contact points being generated and
evaluated every step despite the fact that nothing is moving (and in this
case, the boxes are colliding with static geometry, which is never going
to move). My question is whether this is something that can be fixed in
ODE, or whether this is something that should be handled at a higher
level?
The specific case here is geometry which is occasionally dynamic. This
means that most of the time it is sitting around with no forces acting
upon it except gravity. The user should be able to interact with it, but
most of the time it shouldn't be moving. If two bodies have collided
recently (in the previous time step) then it should be possible to avoid
re-calculating the collision and collision joints if neither body has
moved more than an infintesimal amount since the previous step. How well
would this work?
[ Peter Amstutz ][ amstutz@cs.umass.edu ][ tetron@interreality.org ]
[Lead Programmer][Interreality Project][Virtual Reality for the Internet]
[ VOS: Next Generation Internet Communication][ http://interreality.org ]
[ http://interreality.org/~tetron ][ pgpkey: pgpkeys.mit.edu 18C21DF7 ]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
iD8DBQE94zHNaeHUyhjCHfcRAsBzAJ9eESdKUJPIMcQsmGRoilesznHIrwCeIduH
O3kRglgKyqjJByCajI8yOvc=
=i2G+
-----END PGP SIGNATURE-----