[ODE] general problem with trimesh collision - how to solve?

Chris Ledwith cledwith at d-a-s.com
Thu Jul 15 15:47:06 MST 2004


Hi,
Here's the scenario: a box primitive the size of a car collides with a
cylinder modeled as a triangle mesh (not using the cylinder primitive, for
the sake of argument). If the length of the colliding side of the box is
similar to the cylinder's radius, no problem is encountered -- because the
normals of the intersected triangles are more or less facing in the same
direction. If, however, the trimesh cylinder has a much smaller radius
(e.g. a telephone pole) there will be problems -- the physics gets
"screwy", i.e. ODE cannot decide which way to push the box back out --
since forces are appplied in competing directions due to triangle normals
pointing in many directions at once.

BTW, I'm using the old box-trimesh collision -- I'm not up-to-date with
the many changes to ODE in the last few months. Does the new box-trimesh
collision solve this problem? If not, has anyone come up with a good way
to tackle this? I know that one way to fix it is to not allow such a
collision to ever happen -- boxes of a certain size (say, a vehicle) would
collide only with more simplified meshes, leaving rays and smaller boxes
(bullets, grenades) to collide with more accurate representations. And I
may go that route -- having two distinct collision representations of each
object in my environment.

But I was wondering if anyone has some other ideas.

Thanks,
Chris



More information about the ODE mailing list