Hello everybody!
I have a problem with a tree collision. It is a sphere that contains several cubes. The cubes are supposed to move randomly within the cube (by applying random forces each frame) and by a button press, gravity kicks in and the cubes are supposed to fall down and come to rest.
In theory, all is working good so far, however, I noticed the cubes sometimes gain incredible momentum when scratching the sphere and sometimes even fall through it, usually with a huge velocity. I also noticed, that this happens the more often, the more detailed (more vertices) the sphere is. It happens pretty rarely on a 16x16 sphere, but relialby on a 64x64 one. The bug also sometimes crashes the program with the following error:
../../source/physics/dgMinkowskiConv.cpp:1030: dgInt32 dgContactSolver::CalculateConvexShapeIntersectionSimd(const dgMatrix&, const dgVector&, dgUnsigned32, dgFloat32, dgInt32, dgVector*, dgInt32, dgVector*, dgContactPoint*, dgInt32) const: Assertion `p.m_z >= p0.m_z' failed.
I am using Ogre 1.7.4 with OgreNewt 2 and Newton 2.35 (more recent versions are not supported by OgreNewt).
Since a visual example always makes things easier, I recorded a short video of the problem: http://youtu.be/BYF8VinujL0
Make sure to activate annotations.
So.. what could I be doing wrong? Or is this a problem with the Newton engine?
If there is anything else I can provide to solve this problem, I will happily do so.
Thanks!