[sldev] [ATTN-LL] Physics engine status update?

Andrew Meadows andrew at lindenlab.com
Mon Oct 1 09:37:07 PDT 2007


If you take a concave object in Havok and replace it with a collection
of convex parts that approximate the same shape you end up with more
efficient collisions... sorta.  It depends on how many pieces you
used to approximate the concave mesh, if the number of sub-parts is
very high you'll get diminishing returns.  But... I've seen Havok2 improve
performance when taking a 20-prim object made from hollow-cut-torii
and replacing it with about 200 small boxes.

Havok4.x still has a problem when colliding two of their "list shapes"
(collections of smaller shapes) together.  We solved it by wrapping their
list shapes in a Memory Optimized Partial Polytope (MOPP) but constructing
the MOPP is a little expensive.  According to the Havok engineers they've
fixed list-shapes vs list-shape collisions in Havok5 making them about 97%
as efficient as a MOPP-wrapped-list, without the cost of computing the
MOPP.

One of the things I'd like to do eventually is to ignore Havok's
concave-concave collision code, and just use their convex-convex
algorithms, using largish collections of convex shapes to approximate
the concave primitives available in SL.

- Andrew

Dirk Moerenhout wrote:
> I never tested how SL (or rather the old Havok I guess) does it but I
> can't imagine it's, currently, the fastest way to do it. Nor as you
> noticed yourself is it really usable.
> 
> If you build up the sphere with too few triangles you may end up
> getting something that is (or maybe rather was) mathematically faster
> as you can simplify the triangle math more easily. Still with todays
> FPU power it'd be better to just calculate how a real sphere would
> roll over that plane.
> 
> This is what Nick Gray from Havok says about it in the PDF that was in
> this thread earlier on:
> "But we need one more piece of info to help us guide our choices for
> efficiency, and it's that convex objects are easier to perform
> collisions with than non-convex objects.
> So triangles, spheres, capsules, cylinders, boxes, cones or convex
> polyhedra are 'simple'. Arbitrary meshes (triangle soups), or even
> just triangle representations of the above
> convex shapes are 'complex'. And the rule-of-thumb is that collisions
> between complex geometries are very costly to do in real-time."
> 
> Dirk aka Blakar Ogre
> _______________________________________________
> Click here to unsubscribe or manage your list subscription:
> /index.html


More information about the SLDev mailing list