bullet3 icon indicating copy to clipboard operation
bullet3 copied to clipboard

Assertion on normalizing orgNormalInB that is zero

Open NicSavichev opened this issue 1 year ago • 2 comments

prog\3rdPartyLibs\phys\bullet-3\src\LinearMath/btVector3.h,309: assert failed in prog\3rdPartyLibs\phys\bullet-3\src\LinearMath/btVector3.h:309,btVector3::normalize() : "!fuzzyZero()"

Call stack (21 frames): btGjkPairDetector::getClosestPointsNonVirtual +4155/5487 prog\3rdPartyLibs\phys\bullet-3\src\BulletCollision\NarrowPhaseCollision\btGjkPairDetector.cpp(1121) +0 btConvexConvexAlgorithm::processCollision +9914/12018 prog\3rdPartyLibs\phys\bullet-3\src\BulletCollision\CollisionDispatch\btConvexConvexAlgorithm.cpp(704) +0 btConvexTriangleCallback::processTriangle +592/727 prog\3rdPartyLibs\phys\bullet-3\src\BulletCollision\CollisionDispatch\btConvexConcaveCollisionAlgorithm.cpp(177) +0 btDagorHeightfieldTerrainShape::processAllTriangles +1382/1535 prog\engine2\phys\physBullet\btDagorHeightfieldTerrainShape.cpp(153) +17 btConvexConcaveCollisionAlgorithm::processCollision +1568/1730 prog\3rdPartyLibs\phys\bullet-3\src\BulletCollision\CollisionDispatch\btConvexConcaveCollisionAlgorithm.cpp(306) +0

orgNormalInB is inited to non-zero in only one place but two more places set isValid = true so execution gets to btVector3 separatingAxisInA = (-orgNormalInB) * localTransA.getBasis(); btVector3 separatingAxisInB = orgNormalInB * localTransB.getBasis(); both computed to zero and next asserts on normalization in btVector3 pInA = m_minkowskiA->localGetSupportVertexWithoutMarginNonVirtual(separatingAxisInA); btVector3 qInB = m_minkowskiB->localGetSupportVertexWithoutMarginNonVirtual(separatingAxisInB);

proposed solution is +++ b/src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp @@ -1116,4 +1116,5 @@ void btGjkPairDetector::getClosestPointsNonVirtual(const ClosestPointInput &inpu

		btScalar d2 = 0.f;
  •   	if (orgNormalInB.length2())
      	{
      		btVector3 separatingAxisInA = (-orgNormalInB) * localTransA.getBasis();
    

NicSavichev avatar Apr 24 '23 10:04 NicSavichev