3
\$\begingroup\$

I'm using Jitter Physics to create a game. For testing, I have ball (a spherical rigid body) falling onto a small box-like mesh. The problem is that the ball falls straight through the floor, even though the collision seems to be detected properly.

Ball (spherical rigid body) falling onto a custom mesh.

The mesh's rigid body is created using a triangle mesh shape. In the code below, model is the floor's 3D model

Octree octree = PhysicsUtilities.ExtractOctree(model);
octree.BuildOctree();

Body body = new RigidBody(new TriangleMeshShape(octree));
body.IsStatic = true;

The PhysicsUtilities.ExtractOctree function extracts vertices from the 3D model in order to create the rigid body. As far as I can tell, that function is working correctly (i.e. all vertices and indices look correct). To check if the collision was detected, I added a callback function as follows.

CollisionSystem collisionSystem = new CollisionSystemSAP();
collisionSystem.CollisionDetected += OnCollisionDetected;

World world = new World(collisionSystem);

The ball-floor collision is detected and everything about the collision looks correct. I've even tried changing values in world.ContactSettings, but nothing worked.

Has anyone else experienced this problem? I've tried everything I can and Jitter's documentation is pretty low.

\$\endgroup\$
0
\$\begingroup\$

Collision detection has very little to do with collision response, besides triggering it.

Check your settings for both bodies, and the settings for the physics system:

  1. Collision callbacks: Is there a collision behaviour for each body?
  2. Body density: if density is too low, objects float through each other.
  3. Mass: physics needs this to compute kinematic response and normal forces. make sure the value is set.
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.