Will the complex vs complex pass into history?

Please don't post Bullet support questions here, use the above forums instead.
Post Reply
jiangwei
Posts: 23
Joined: Wed Nov 30, 2005 11:07 am
Location: China

Will the complex vs complex pass into history?

Post by jiangwei »

I knew that ODE with the help of OPCODE which used compressed AABBTree and novodex use PMAP to handle complex vs complex such as cow verus cow.But novodex is getting rid of the PMAP have been mentioned in its document.Erwin recommeded me that decompose the cow in a compound of several convex pieces in order to use GJK.
Will use compound of serveral convex pieces to handle mesh vs mesh be the trend of physics engine ?
User avatar
Erwin Coumans
Site Admin
Posts: 4221
Joined: Sun Jun 26, 2005 6:43 pm
Location: California, USA
Contact:

Re: Will the complex vs complex pass into history?

Post by Erwin Coumans »

jiangwei wrote:I knew that ODE with the help of OPCODE which used compressed AABBTree and novodex use PMAP to handle complex vs complex such as cow verus cow.But novodex is getting rid of the PMAP have been mentioned in its document.Erwin recommeded me that decompose the cow in a compound of several convex pieces in order to use GJK.
Will use compound of serveral convex pieces to handle mesh vs mesh be the trend of physics engine ?
There is already discussion about this a few days ago in this tthread:
http://continuousphysics.com/Bullet/php ... .php?t=290

It is not so dramatic as you make it sound, it is just common sense:
for realtime game physics, it is better to use a fast, stable convex collision primitives instead of slow, unstable concave. This is not a new trend, it has been like this for the last 10 years as far as I remember.

See also this thread on the ODE mailing list:
http://q12.org/pipermail/ode/2006-January/017608.html

PMAPs just consume too much memory. ODE tri-mesh versus tri-mesh is just overkill in almost any case for game physics.

Instead of complex, you can call it concave. So its is better to use (compound of) convex rather then concave. Performance is better, and the nature of convex objects makes contact manifold generation much more reliable.

If you really require concave collision detection, PMAPS are more recommended then ODE/OPCODE trimesh versus trimesh. I can't give much details about PMAPS, but think of it as a kind of signed distance field. It still has a volume defined, and the distances are precomputed. Another big issue in ODE's trimesh versus trimesh (concave-concave) is tunneling effect, because of lack of volume.

Besides PMAPS, Opentissue (http://www.opentissue.org/) has signed distance map support. And Doom3 can handle concave versus concave, but only because they are using continuous collision detection to avoid tunneling.

Erwin
Post Reply