MADEAPPS / newton-dynamics

Newton Dynamics is an integrated solution for real time simulation of physics environments.
http://www.newtondynamics.com
Other
936 stars 182 forks source link

debug assertion failed in ndContactSolver::CalculateContactsDiscrete #248

Closed BenjaminGu closed 2 years ago

BenjaminGu commented 3 years ago

debug assertion failed at ndContactSolver.cpp line2310.

dAssert(m_separationDistance < dFloat32(100.0f));

The call stack is as follows.

ndNewton_d.dll!ndContactSolver::CalculateContactsDiscrete() Line 2310   C++
ndNewton_d.dll!ndScene::CalculateJointContacts(int threadIndex, ndContact * const contact) Line 837 C++
ndNewton_d.dll!ndScene::CalculateContacts(int threadIndex, ndContact * const contact) Line 1588 C++
ndNewton_d.dll!`ndScene::CalculateContacts'::`2'::ndCalculateContacts::Execute() Line 1352  C++
ndNewton_d.dll!dThreadPool::ExecuteJobs(dThreadPoolJob * * const jobs) Line 156 C++
ndNewton_d.dll!ndScene::SubmitJobs<`ndScene::CalculateContacts'::`2'::ndCalculateContacts>(void * const context) Line 261   C++
ndNewton_d.dll!ndScene::CalculateContacts() Line 1357   C++
ndNewton_d.dll!ndWorld::SubStepUpdate(float timestep) Line 750  C++
ndNewton_d.dll!ndWorld::ThreadFunction() Line 689   C++
ndNewton_d.dll!ndWorldDefaultScene::ThreadFunction() Line 54    C++
ndNewton_d.dll!dThread::ThreadFunctionCallback() Line 112   C++
JulioJerez commented 3 years ago

yes that's a warning. It means that some how two collision shapes who are more 100 unit apart, are generation a contact pair. This is eassy to determine for convex shapes, but not so much for concave. Where you running a demo when this happens.?

It may not be a bug, but has to be check because if that value does not reflects the real distance and the bodies are closer, the collision will be ignored.