Continuing the discussion from Random Picture Thread:
I keep seeing this written by different people that they have a hard time determining how to make a collision hull for static entities. It should be straightforward.
Bullet is supposed to handle collisions against static tri-mesh with decent efficiency. That is what btBvhTriangleMeshShape is for. Is that not enabled here? With tri-mesh collisions, especially for planar meshes aka terrain, is should be fairly straightforward to make a collision hull because it can simply be a decimated version of the mesh model (this assumes the normals are correct). The reduction in triangles is done to reduce Bullet’s computational load.
Only dynamic objects need their physics shape defined as convex hulls. Bullet is supposed to handle the collision of dynamic convex hull assemblies against static tri-mesh quite well.
Note that terrain ‘planar’ mesh models should still be modeled as a closed volume. Though Bullet can handle collisions against a tri-mesh, should the object go through it because of high velocity, only a finite volume mesh will make Bullet expel the interpenetrating object. In the vehicle work I did for InWorldz, I also had to add code to assist the expulsion by adding an impulse force against the gravity gradient when full ‘terrain’ penetration happens. Sometimes PhysX (the engine used there) would choose to expel the object in the other direction.