RBD vs Bullet Solver in Houdini
In a destruction tutorial video I posted on my Youtube channel, I demonstrate how to setup a simple RBD (rigid body dynamics) simulation for a destruction scene. I use the Rigid Body solver to calculate the collision dynamics between the objects in the scene. The Rigid Body solver has the option to choose between using the Bullet solver engine or RBD solver engine to calculate the dynamics of the simulation.
Bullet Solver
The Bullet Solver approximates all colliding objects by representing the volume of these objects using simple geometries like spheres and boxes. Try to picture a pixelated rubber toy that made up of cubes like its built out of Lego bricks. The Bullet Solver will convert all the objects in the simulation into mini-cubes or mini-spheres before running it through the simulation and before it starts calculating collisions between objects.
This makes it a lot easier to calculate collisions between objects because the shape of the objects are now predictable and sometimes this may reduce the poly count of the geometry. This is a huge performance improvement making the Bullet Solver very fast to use. Unfortunately there’s always a down side to things and because of the approximation of the geometry is not accurate, this results in inaccurate collisions as well.
RBD Solver
The RBD Solver uses a more precise way of calculating the collision dynamics of the objects. According to SideFX’s documentation, it’s best to accompany the simulation with a volumetric representation of the objects being simulated. This is similar to the proxy volume I demonstrate in a previous tutorial video on FLIP Fluids simulations.
The RBD Solver engine results in a more accurate simulation at the cost of computation time because this is must slower than the Bullet Solver engine.
Best Practices
It’s a good idea to use the RBD Solver if you have complex geometry in your simulation, but if the scene consists of simple shaped geometry the Bullet Solver will be more efficient. If there are any hesitations, try using the Bullet Solver engine first and cook a few frames of the simulation and examine the collisions and see if it appears good enough for what you’re doing. If it isn’t good enough, then simply switch to the RBD Solver and recook the simulation to see it improves the scene.
RBD Packed Object
When fracturing objects for destruction it’s usually a good practice to packed the geometry so it’s memory efficient, but the RBD Packed Object in DOPS is only compatible with the Bullet Solver. The tricky thing about this is that it won’t throw an error if you accidently hook up the RBD Packed Object with Rigid Body Solver. And in fact there won’t be any warning messages or anything, but it won’t work as expected either!
RBD Packed Object in DOPS only works with the Bullet Solver!
I found a small blub in Houdini’s documentations that support this. Please click here and it’s in the first paragraph that says, “This object representation is currently only understood by the Bullet Solver.”