Best 3D physics engine for accurate collision handling on desktop/laptop computers (non-console)

Started by
1 comment, last by ic0de 11 years, 5 months ago
What is the best 3D physics engine that satisfies the following criteria?

  1. Capable of calculating collisions between multiple concave mesh-based colliders
  2. Handles many collisions going on at once (for instance one mesh being wedged between two others, which themselves may be wedged between two meshes)
  3. Does not allow for collider passthrough, even at high speeds. For instance, if I am applying force to a programmatically hinged object that makes it spin, I do not want it to pass through another rigidbody that it collides with while spinning. I have this problem using PhysX
  4. As implied before, reacts well to hinged objects, preferably has its own implementation of a hinge, but I am willing to program my own. The important part is that it has some sort of interface that guarantees accurate collision tracking even when dealing with these things
  5. Platform independent -- runs on mac as well as PC, also not tied down to specific graphics cards

I think that's the best way to explain what I am looking for. Basically, I need SUPER reliable collisions. Something that can't be accomplished with a simple ray casting approach that sends a ray from the last position of the object to the current position (as this object may be potentially large and colliding with small objects via rotation)

Bonus points for also including the best OPEN SOURCE engine as well as the best non-open source.
Advertisement

  1. Isn't this the same thing as 2)?
  2. I'm not even sure how this would have to react or what specific behavior you're looking for but I believe PhysX/Havok/Bullet would all resolve those collisions with "accurate enough" precision. I'm inclined to think they would actually resolve the collision in the same timestep as internally the various libraries does not really see stuff colliding but rather satisfy a set of constraints such as "do not encroach any other object". Of course, this is highly casual phenomena in nature and if you're designing something around this specific behaviour, I strongly suggest to desist.
    Seriously, even flipping a coin in reality does not produce consistent behavior. And I bet reality is ran by a fairly good enough physics lib.
  3. Bullet has a special conditional continuous collision detection. I'm surprised physX does not have it! Try looking harder.
  4. Bullet is open source runs well on most configs I've tested and has an OpenCL solver in the works for anyone having a CL enabled card. Odds are you'll have to enable it manually but that does not look like a big problem.


Basically, I need SUPER reliable collisions.
Then give up interactive-oriented physics libraries.

Something that can't be accomplished with a simple ray casting approach that sends a ray from the last position of the object to the current position (as this object may be potentially large and colliding with small objects via rotation)
No library I looked at implemented this method. If you think anyone serious is doing that, odds are you might not even know what you're talking about.
Sorry if I sound rude but more specifically... what are you trying to accomplish? Providing some context is typically a good thing.

Previously "Krohm"

Bullet Physics is great and I use it extensively but be aware that their documentation sucks, however it does satisfy all your conditions and it's free.

This topic is closed to new replies.

Advertisement