Which physics engine for destructible and deformable environment?

Started by
8 comments, last by Dirk Gregorius 16 years, 11 months ago
Hi, I am currently evaluating physics engines, mainly Bullet Physics, ODE and PhysX from Ageia. The most important point is a destructible environment and deformable terrain. I can not find many information on these specific topics, so I am hoping somebody here has already tried this and can share his experiences and/or recommendations :-) Thanks, Enrico
--
Advertisement
http://www.pixeluxentertainment.com/
If you choose to go the route of ODE, may I recommend using the higher-level wrapper of it OPAL? OPAL is relatively high-level that lets you do many things very easily. One of these things is destructible joints which could help you out. It doesn't have built-in support for destructible meshes or anything like that.

I guess the only reason to use ODE over OPAL is that OPAL is currently using a rather out dated version of ODE (0.6, ODE is now at 0.8 IIRC). So if you need a feature from 0.8, use ODE but otherwise go for OPAL.
Quote:Original post by DonDickieD
http://www.pixeluxentertainment.com/


That work is incredible, video. I did notice that that site has not been updated since 2006.
Quote:Original post by EzbezI guess the only reason to use ODE over OPAL is that OPAL is currently using a rather out dated version of ODE (0.6, ODE is now at 0.8 IIRC). So if you need a feature from 0.8, use ODE but otherwise go for OPAL.

Unfortunately, OPAL looks dead right now. The last news are from May, 2006 :-/

One of your programmers mentioned that ODE still has instabilities, especially when applying constraints to joints. He tested this the last time with ODE 0.5, so maybe this has been improved. Can anybody confirm this?

--
It really all depends on what exactly you mean by "destructible environment and deformable terrain". For example if you want to break up buildings into pre-defined chunks the important things to look at in your engine is whether it provides an efficient way to acheive this through allowing you to sever nodes in the collision hierarchy for example. Also is it possible for you to easily speicfy new collision hierarchies based on specific branches of other hierarchies. If you want to break objects up dynamically in non-predefined ways through finite element methods for example then you have to ask yourself whether the engine provides such features and if not (not many do) then how easy does the engine make it for you to expand it in such ways. Also with dynamically changing objects you have to measure how well the engine copes with constantly redefining collision structures and hierarchies (many engines suffer here). The above also applies to the deformable part of your question if you want to actualy simulate the deformation. Perhaps though your plan is to only let things deform through the use of pre-defined deformations which you then blend between. Does the engine support blending between collision hierarchies or how easy is it to add this feature yourself. Perhaps you want to allow deformations through joints. Then you have to measure how the engine copes with dynamically changing joint contraints.

As you can see there's a lot of ways you can approach this, so the first thing you should really do when evaluating packages is decide what exact questions you want answered and then go about answering them.
[size="1"] [size="4"]:: SHMUP-DEV ::
Quote:Original post by Motorherp
It really all depends on what exactly you mean by "destructible environment and deformable terrain". For example if you want to break up buildings into pre-defined chunks the important things to look at in your engine is whether it provides an efficient way to acheive this through allowing you to sever nodes in the collision hierarchy for example. Also is it possible for you to easily speicfy new collision hierarchies based on specific branches of other hierarchies. If you want to break objects up dynamically in non-predefined ways through finite element methods for example then you have to ask yourself whether the engine provides such features and if not (not many do) then how easy does the engine make it for you to expand it in such ways. Also with dynamically changing objects you have to measure how well the engine copes with constantly redefining collision structures and hierarchies (many engines suffer here).

Ok, I see I was a little too short with my initial question :-|

The points you brought up are the important ones, of course. I think we will go with breakage in pre-defined chunks. So I am here to find out which physics engine would be the best to try out. PhysX looks promising, however we want Linux and Mac OS support and that seems quite weak for PhysX...
Bullet Physics looks quite promising too, unfortunately I can not find many experiences or oppinions about this specific library :-)

--
Maybe you should take a look at Havok physics.

http://www.havok.com/

You can see a movie of it here:



Looks really nice although i haven't tried it myself.
Quote:Original post by Haladria
Maybe you should take a look at Havok physics.

http://www.havok.com/

You can see a movie of it here:



Looks really nice although i haven't tried it myself.


That's not Havok, someonw has just posted it up wrong. The ragdoll/animation stuff with Indiana Jones is done with Euphoria, and the destructable physics is done with Digital Molecular Matter.

[size="1"] [size="4"]:: SHMUP-DEV ::
If you can affort Havok this is the fastest and most mature system in my opinion out there. So if we are speaking about a professional project and you want decent phyiscs that is the way to go. If not I would use most propably PhysX. Ode hasn't made any progress since the last official release 0.6 and in my opinion it is a dead project, since the contribuitons that are made to the current version 0.8 are useless. So if you want to go open source Bullet is the way to go. Though it might be that it lacks some of your requested features at the moment, you will find a project that is heavily active and adding breakable constraints is not to much of a problem.

HTH,
-Dirk

This topic is closed to new replies.

Advertisement