Concave performance

User avatar
tasora
Posts: 26
Joined: Mon Aug 15, 2005 8:57 am
Location: Italy

Concave performance

Post by tasora »

Hallo,
I made some tests using the GIMPACT concave-concave
collision method, as in the 'moving concave' demo of Bullet.
However, the performance seems a bit slow (also, there are
some 'robustness' issues, but this is typical of most concave
collision algorithms, because of local minima).
Looks like the 'convex decomposition' approach may give
a faster performance, but I did not made tests with it. So..

- Has anyone compared the performance of the two approaches?
- Is it possible that we'll see the concave-vs-concave collision as a native case in future releases of Bullet, instead than relying on the two external libraries (Gimpact and the one for convex decomposition) ?

regards,

Alessandro Tasora
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA

Re: Concave performance

Post by Erwin Coumans »

For concave objects, Bullet supports compound collection of convex shapes, using the btCompoundShape. Typically the convex decomposition is done manually (usually done by artists in a game project) or in a authoring tool. Just as example, there is some experimental convex decomposition included in Bullet, which comes from Ageia's CreateDynamics tool. It is up to the user to author the collision shapes.

GIMPACT is provided as a well-integrated Extra/optional library. The definition of 'external library' is a bit fuzzy with open source: would you call OPCODE and GIMPACT external library of ODE?

To answer your questions:
- I haven't done any performance comparisons so far using GIMPACT.
- there are no short-term plans to replace GIMPACT by a new implementation: using convex objects, and compounds of convex objects using btCompoundShape is recommended and supported. The challenge of creating/authoring those compound shapes is up to the user.

You can also consider using the free CreateDynamics tool, or other convex decomposition tools/libraries.

Hope this helps,
Erwin