How are these cross-talking?

Berezovsky
Posts: 14
Joined: Tue Oct 14, 2014 9:32 pm

How are these cross-talking?

Post by Berezovsky »

The class that I am using has its own collision configuration.
  • It has its own collision dispatcher.
  • It has its own broad phase.
  • It has its own constraint solver.
  • It has its own discrete dynamics world.
  • And it allocates all these things, and cleans them up in a nice, neat, correct, encapsulated and object-oriented manner.
This RagdollDemo class has its own, independent set of btCollisionShape's and btRigidBody's which it both allocates, creates, defines, and then carefully cleans up in reverse order of creation at the destructor exit function.

So how is it that when I declare two independent classes stored completely in different locations in memory, that the various simulations interact with each other in strange ways? If I initialize the physics in one of them, the other one does not operate. If I try to delete the first one, and create the second one thereafter, the second one crashes with an AABB out-of-bounds error. The location of several of the bodies in the sim comes back as a NaN value (-1.#QNAN00000) , after calling ::stepSimulation() only once. I can easily re-create all these errors, at will, for anyone who so desires to see such.

If I were to start over from scratch, and re-write the entire class myself (starting from the Helloworld example from the wiki), this is exactly what I would have already done.

So my question stands. Why is there cross-talk? How is there cross-talk? What is hidden in this bullet header files that is making global data that is clashing between invocations of these simulations?

It's a simple question.

Code: Select all

http://i.imgur.com/r5fl9Xr.png
http://i.imgur.com/ls8LUrk.png
Berezovsky
Posts: 14
Joined: Tue Oct 14, 2014 9:32 pm

Re: How are these cross-talking?

Post by Berezovsky »

Granyte
Posts: 77
Joined: Tue Dec 27, 2011 11:51 am

Re: How are these cross-talking?

Post by Granyte »

I recall seeing this some times in the past if i'm right the issues comes from bullet's profiling utility if you compile with the NO_PROFILE flag or something like that it's supposed to work