Bullet solver breaking glue update

   9597   8   3
User Avatar
Member
81 posts
Joined: July 2010
Offline
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]

Attachments:
SIM_SolverBulletGlueupdate.cpp (107.0 KB)
SIM_SolverBulletGlueupdate.h (6.7 KB)

User Avatar
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.
User Avatar
Member
81 posts
Joined: July 2010
Offline
The Bullet Data controls in Houdini actually provide a nice fix for this. In the RBD Fractured Object node, under the Collisions->Bullet Data tab, there are some controls for adjusting and padding the geometry that should resolve your issue.
User Avatar
Member
172 posts
Joined: March 2012
Offline
could you explain how to install it

thanks

Fred
User Avatar
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.
User Avatar
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
User Avatar
Member
81 posts
Joined: July 2010
Offline
I didn't replace the old one (in fact, I use the original in default cases). I just gave the plugin a different name.
User Avatar
Member
81 posts
Joined: July 2010
Offline
Good news, this was fixed in today's Houdini build.

Houdini 12.1.70: Improved the collision behaviour of glued objects, which now collapse more naturally instead of having the object bounce back with only the directly impacted pieces breaking off.

It works great. Thanks SideFX!
User Avatar
Member
102 posts
Joined: March 2012
Offline
yay!
im so glad that sidefx are aware of bugs and they are actually fixing them
  • Quick Links