[ODE] test problems?

Russ Smith russ at q12.org
Thu Nov 15 16:58:02 MST 2001


> As far as I understand Havok doesn't use
> primitives for computing e.g. collision overlaps
> (at least not in Reactor according to my 3dsmax dealer).
> What difference does this make for stability, performance
> and scaling between using e.g. a stack of polygon cubes
> and a stack of mathematical cubes?

hi kenneth,

it depends on how the contact generation is implemented.
with the "mathematical cubes" approach it is rather
easier to generate a small number of contact points,
just enough to maintain the geometric constraints.
with the "polygon cubes" approach, each polygon (or
triangle) can potentially generate contact points when
it intersects with other triangles - so many more contact
points can be generated - they need to be culled to a
reasonable set, but the algorithms for doing this may
not always get the best answer. for example, if vertex
from one cube hits a face of another, then three contact
points may be generated for the tri-edge collisions.
these three points may be very close together if there
is not much penetration, which will not help stability.
a "mathematical cubes" algorithm will find the one
contact point that will "push the vertex out of the face"
-- this will be both faster and more stable.

to summarize, a "mathematical cubes" algorithm is
  * faster (less contacts generated, and the actual
    collision detection is faster too).
  * potentially more stable (for the same reason)
  * scales better (because is is faster)

the big disadvantage of using primitives is that
you have to write all N*(N+1)/2 collision cases, which
is not fun. i dont plans to add any more general-purpose
non-polygon primitives to ODE, although adding primites
that dont collide with all other types is an option.

russ.

--
Russell Smith
http://www.q12.org



More information about the ODE mailing list