Page MenuHome

Crash in Game Engine collision detection
Closed, ResolvedPublic

Description

Category: Physics

Attached .blend crashes after falling object (Cylinder) goes out of view.

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
0 btQuantizedBvh::reportAabbOverlappingNodex(btNodeOverlapCallback*, btVector3 const&, btVector3 const&) const + 4
1 btBvhTriangleMeshShape::processAllTriangles(btTriangleCallback*, btVector3 const&, btVector3 const&) const + 41
2 btScaledBvhTriangleMeshShape::processAllTriangles(btTriangleCallback*, btVector3 const&, btVector3 const&) const + 259
3 btGImpactCollisionAlgorithm::gimpact_vs_concave(btCollisionObject*, btCollisionObject*, btGImpactShapeInterface*, btConca
4 btGImpactCollisionAlgorithm::gimpact_vs_shape(btCollisionObject*, btCollisionObject*, btGImpactShapeInterface*, btCollisi
5 0 + 4798760640

blend and full crash report attached.

If "Compound" under Physics->CollisionBounds for the Cube is turned off, it does not crash.
Triangle Mesh is set.

Event Timeline

A simpler way to reproduce the crash is to turn on physics visualization when a soft body is marked as compound.
I'm pretty sure compound shapes aren't supported for soft bodies, it doesn't really make sense.

I've attached a patch that checks for rigid body type when building compound shapes and also grays out the compound option for soft bodies.
The behavior is still a little strange mainly because if compound is checked for a soft body that is parented to a rigid body, the soft body behaves like a rigid body.
It seems to be consistent with the way object types are treated in the game engine though .


I took a look at the patch, and I would change:
sub.active = not game.physics_type == 'SOFT_BODY'

to:
sub.active = game.physics_type != 'SOFT_BODY'

I'm assigning this report to Benoit to double-check the physics part of the patch.

Inês Almeida (brita_) edited this Maniphest Task.Jun 19 2014, 8:19 PM

@Mitchell Stokes (moguri) no Benoit to double check...
I have reapplied the patch and tested: D610
I don't see a difference in your proposed changes (not a==b vs a!=b), maybe because I don't know enough of python.

@Inês Almeida (brita_) moguri's suggestion is just a style nitpick :)

The patch is ok, including the physics part.

Inês Almeida (brita_) edited this Maniphest Task.Jun 24 2014, 4:59 PM
Inês Almeida (brita_) closed this task as Resolved.Jun 24 2014, 4:59 PM

Closed by commit rB5640131c20aa.