setWalkDirection causes fuzzyZero assertion

dustin10
Posts: 1
Joined: Sun Mar 20, 2016 9:50 pm

setWalkDirection causes fuzzyZero assertion

Post by dustin10 »

I am using a btKinematicCharacterController for my FPS camera in my project. I am building the project on Linux, OSX and Windows. On only the Windows build I hit the fuzzyZero assertion upon startup of the scene.

I basically have the character controller and a BvhTriangleMeshShape object that is the static geometry in the scene. This assertion seems to happen when I use setWalkDirection of the controller. If I use setVelocityForTimeInterval then everything works fine for normal movement. The only issue with this method is jumping since the velocity is reset to 0 and gravity wont be taken into account until the new velocity vector is not 0, i.e. the next time a movement is action is received from the user.

Has anyone run into this before? Everything runs fine on OSX. I don't hit the fuzzyzero assertion when using setWalkDirection. It is only happening on my Windows build. Below is the stack trace. Thanks for any help.

Code: Select all

viewer.exe!btVector3::normalize(void)
viewer.exe!btQuantizedBvh::walkStacklessQuantizedTreeAgainstRay(class btNodeOverlapCallback *,class btVector3 const &,class btVector3 const &,class btVector3 const &,class btVector3 const &,int,int)	
viewer.exe!btQuantizedBvh::reportBoxCastOverlappingNodex(class btNodeOverlapCallback *,class btVector3 const &,class btVector3 const &,class btVector3 const &,class btVector3 const &)
viewer.exe!btBvhTriangleMeshShape::performConvexcast(class btTriangleCallback *,class btVector3 const &,class btVector3 const &,class btVector3 const &,class btVector3 const &)
viewer.exe!btCollisionWorld::objectQuerySingleInternal(class btConvexShape const *,class btTransform const &,class btTransform const &,struct btCollisionObjectWrapper const *,struct btCollisionWorld::ConvexResultCallback &,float)
viewer.exe!btCollisionWorld::objectQuerySingle(class btConvexShape const *,class btTransform const &,class btTransform const &,class btCollisionObject *,class btCollisionShape const *,class btTransform const &,struct btCollisionWorld::ConvexResultCallback &,float)	
viewer.exe!btGhostObject::convexSweepTest(class btConvexShape const *,class btTransform const &,class btTransform const &,struct btCollisionWorld::ConvexResultCallback &,float)
viewer.exe!btKinematicCharacterController::stepForwardAndStrafe(class btCollisionWorld *,class btVector3 const &)
viewer.exe!btKinematicCharacterController::playerStep(class btCollisionWorld *,float)
viewer.exe!btKinematicCharacterController::updateAction(class btCollisionWorld *,float)	Unknown
viewer.exe!btDiscreteDynamicsWorld::updateActions(float)	Unknown
viewer.exe!btDiscreteDynamicsWorld::internalSingleStepSimulation(float)	Unknown
viewer.exe!btDiscreteDynamicsWorld::stepSimulation(float,int,float)