0
$\begingroup$

Alright: I'm new to blender and for the last several days I've been struggling with a problem with the rigid body physics. Here's how it goes:

  1. Open new blender project
  2. Change to cycles render
  3. Import 3D model (swivel chair)
  4. Add active physics to swivel chair (rigid body)
  5. Add passive physics to plane
  6. Click play (animation plays)
  7. Chair falls... then stays 100% upright, not rotationally affected by impact

https://i.stack.imgur.com/zQQ4Z.png enter image description here

$\endgroup$
3
  • $\begingroup$ Under the Rigid body settings check its Shape settings. Also make sure you have no damping on rotation $\endgroup$ Sep 27, 2018 at 23:16
  • $\begingroup$ @DuarteFarrajotaRamos Shape is set to Convex Hull, Rotational Damping set to 0 $\endgroup$ Sep 27, 2018 at 23:21
  • $\begingroup$ For non-convex shapes you really want to select Mesh. It requires more CPU power but will result in much better simulations. $\endgroup$ Oct 20, 2020 at 13:51

1 Answer 1

3
$\begingroup$

Under the physics tab of the property panel set the Shape to Mesh. The convex hull is like a shape drawn around the mesh with no concave angles, so the feet of the chair might behave unexpectedly, as if there's just a flat plane or a few flat triangles on the bottom. It also has some degree of approximation, it doesn't create a new point for every point on your mesh.

I don't think there's a way to visualize the convex hull that Blender generates for an object. It probably looks a bit like this but with more triangles and different triangulation pattern.

chair convex hull

Your chair mesh might not be entirely suitable for collisions if it is non-manifold, particularly if it has open backfaces. If this is the case you can create a separate mesh just for collisions that represents the shape of the object but not it's appearance. You would then parent the chair mesh to the collision mesh so it moves exactly with it, and then hide the collision mesh from rendering so it doesn't cover the chair.

Finally, change the Bounciness under Surface Response of the chair and the surface your chair is landing on. When Bounciness is set to 0 the surface stays impossibly still and doesn't apply any force to the object landing on it regardless of how bouncy the falling object is. Likewise a falling object with Bounciness zero appears to receive no force when it's Bounciness is 0. Most objects should have at least some amount of bounciness in order to behave as expected.

$\endgroup$
2
  • $\begingroup$ Do you know is there any simple way to set friction and bounciness to match real world objects? Real world objects have different Friction Coefficients for static (non-sliding) and kinetic (sliding) connections which Blender doesn't seem to support. Blender Rigid Body simulation is about rigid bodies only so even though you can simulate a bouncing tennis ball by setting suitable bounciness, it's not physically correct simulation. $\endgroup$ Oct 20, 2020 at 13:56
  • 1
    $\begingroup$ This is probably worth it's own question. Blender implements the Bullet Physics Engine. It produces a coefficient of friction by multiplying the values of the two interacting objects. You can get realistic results for two specific materials, but additional objects might not scale well. In reality the coefficient of friction can only be given for two specific materials. This implementation is convenient when you're dealing with lots of materials at the cost of some accuracy. I'm not sure if there's one place this is all documented, most of the info I've found is the Bullet Physics forum. $\endgroup$ Oct 20, 2020 at 19:25

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .