[ODE] Integrating ODE with Gamebryo
Jon Watte (ODE)
hplus-ode at mindcontrol.org
Mon Aug 21 10:32:09 MST 2006
Sounds like Gamebryos collision detection isn't good enough. A single
point is not sufficient, as you will never come to rest on floors etc in
that way (you will continually add torque).
If you HAVE to use Gamebryo, I would recommend calling dCollide() to get
the contact points (with depth) between the objects that Gamebryo tells
you intersect; i e treat the simple call to dCollide() (which is O(1))
as part of generating the contact constraints.
Tim Sorrells wrote:
> I’m integrating ODE into an engine based on Gamebryo. I’m trying to
> use Gamebryo’s collision system and build the appropriate dContact
> structs from info returned from the collision system. There are a few
> problems with this approach however.
> First, the collision system I’m using doesn’t provide a penetration
> depth. I’ve been fudging it by taking the distance an object traveled
> last frame and dividing it by two. Of course this doesn’t work well
> with collision due to rotation or with multiple collisions, one due to
> linear velocity the other due to rotation, or any similar combination.
> So I’m wondering if anyone has a better solution for this situation
> than what I came up with. If it helps I’m primarily colliding
> rectangular solids.
> Second, I’ve noticed some people talking about multiple collision
> points. Only one collision point will be generated for any two objects
> no matter how many actual points of intersection there are. Am I
> correct in understanding that if, say two faces were to collide that
> ODE would like a point on each corner, or is only one point OK?
> Third, I’m avoiding the use of geoms as they only contain collision
> data, and I’m using a separate system. So I’m putting a 0 in the
> geomID field for both colliding bodies in the dContact struct. Is this
> OK, or is this going to cause problems? It didn’t seem to me that for
> dynamics simulation that you would need to know anything about the
> bodies. This assuming you had mass, center of mass, collision points,
> and constraint/joint information filled out correctly. So I’m hoping
> that the geomIDs weren’t really used here and were for utility purposes.
More information about the ODE