Hi,
For anyone who might be interested, I'm attaching an edited version of the Bullet solver plugin that is set up to retain the momentum of breaking glued objects.
When glued objects with glue strength 0 collide against another object, the glued pieces affected by the collision should break off without changing the momentum of the rest of the glued object (as happens with the RBD Solver). However, since Bullet does not handle glued pieces internally, colliding glued objects with the Bullet Solver will lose their momentum even with low glue strengths, such as this example where separate objects are glued together with glueStrength = 0:
http://dl.dropbox.com/u/11149691/Video/Houdini/BulletBreakingGlue/fractureObject_glueStrength0_orig.mp4 [dl.dropbox.com]
I updated the bullet solver (which is fantastically implemented) to retain “proper” momentum for colliding glued objects, which files I'm attaching in case it would help anyone (they're source files, so they will have to be linked up with Bullet and compiled). I wouldn't use this update unless truly needed, since it's a bit of a workaround, runs at about 1.5 times slower than the bullet solver, and won't fix all cases, but I'm putting it out there in case it helps anyone.
Anyways, here's a video with our update where glue strength = 0:
http://dl.dropbox.com/u/11149691/Video/Houdini/BulletBreakingGlue/fractureObject_glueStrength0_update.mp4 [dl.dropbox.com]
With glue strength = 8000:
http://dl.dropbox.com/u/11149691/Video/Houdini/BulletBreakingGlue/fractureObject_glueStrength8000_update.mp4 [dl.dropbox.com]
And with glue strength = 8000000:
http://dl.dropbox.com/u/11149691/Video/Houdini/BulletBreakingGlue/fractureObject_glueStrength8000000_update.mp4 [dl.dropbox.com]
Bullet solver breaking glue update
9597 8 3- seth_ro18
- Member
- 81 posts
- Joined: July 2010
- Offline
- oblongowl
- Member
- 40 posts
- Joined: July 2009
- Offline
Very cool. I may use this at some point in my current project.
I wanted to ask you, if you have access to the bullet solver code, do you know a way to stop the bullet solver from its inclination towards massive repulsion on fractured groups that are initially touching (or close to)?
The more polygons you stack against each other at the start frame, the bigger the initial repulsion and there is probably a way to soften this down over the first few frames of a bullet sim if you have access to the code I would imagine.
I wanted to ask you, if you have access to the bullet solver code, do you know a way to stop the bullet solver from its inclination towards massive repulsion on fractured groups that are initially touching (or close to)?
The more polygons you stack against each other at the start frame, the bigger the initial repulsion and there is probably a way to soften this down over the first few frames of a bullet sim if you have access to the code I would imagine.
- seth_ro18
- Member
- 81 posts
- Joined: July 2010
- Offline
- sami.tawil
- Member
- 172 posts
- Joined: March 2012
- Offline
- seth_ro18
- Member
- 81 posts
- Joined: July 2010
- Offline
First, download a Bullet distribution and install it. Bullet comes with a cmake script to run cmake on that will give you the proper makefiles (e.g. it can create a Visual Studio 2008 solution file).
http://code.google.com/p/bullet/downloads/list [code.google.com]
Next, when you compile the BulletSolverUpdated plugin with hcustom, you have to link to certain Bullet libraries. I'm in Windows, so here's what I used:
hcustom -I C:\Program Files (x86)\bullet-2.78\src -l BulletDynamics -l BulletCollision -l LinearMath -L C:\Program Files (x86)\bullet-2.78\lib\Release SIM_SolverBulletUpdated.cpp
One thing with my Windows compile of Bullet, when I compile Bullet, it creates a BulletDynamics.lib file, but hcustom will be looking for a BulletDynamics.obj file, so I simply renamed the extension of BulletDynamics.lib to .obj. The same goes for BulletCollision.lib and LinearMath.lib.
http://code.google.com/p/bullet/downloads/list [code.google.com]
Next, when you compile the BulletSolverUpdated plugin with hcustom, you have to link to certain Bullet libraries. I'm in Windows, so here's what I used:
hcustom -I C:\Program Files (x86)\bullet-2.78\src -l BulletDynamics -l BulletCollision -l LinearMath -L C:\Program Files (x86)\bullet-2.78\lib\Release SIM_SolverBulletUpdated.cpp
One thing with my Windows compile of Bullet, when I compile Bullet, it creates a BulletDynamics.lib file, but hcustom will be looking for a BulletDynamics.obj file, so I simply renamed the extension of BulletDynamics.lib to .obj. The same goes for BulletCollision.lib and LinearMath.lib.
- pavelPeh
- Member
- 30 posts
- Joined: May 2012
- Offline
Hello, I`m trying to use your plugin, but I`m not sure how to use it. I`ve compiled it for linux , but now I`m not sure how to load it into Houdini. Do I have to replace original one or I have to load it in different way. The original plugin is 1.3 MB, modified version- 295KB. I tried to replace it but Houdini gives me an error .
Thanks
Thanks
- seth_ro18
- Member
- 81 posts
- Joined: July 2010
- Offline
- seth_ro18
- Member
- 81 posts
- Joined: July 2010
- Offline
- qbick
- Member
- 102 posts
- Joined: March 2012
- Offline
-
- Quick Links