I am trying to simulate a copy of a few physics element belonging to an Unreal Engine scene in a separate thread. In order to do so, I manually re-create a scene that is very similar to the one that runs internally in the Unreal Engine. All the materials and collision shapes are the same ones that one sets in the Unreal Editor itself.
I managed to achieve some positive results as long as only a static plane and dynamic actors were in the scene, but now I tried adding a static actor with a convex shape and I get really strange behavior.
This is the link of a zip file containing 2 PVD recordings. In dynamic_sphere_vs_static_convex.pvd the scene #4 is the one running inside the UE, scene #6 is the one that I am running in my own thread. Even though almost everything is identical in the two scenes, in the UE one the sphere comes to a rest above the convex hull (which happens to be a very simple cube), while in my scene it just jitters a lot, and I really can’t figure out where the difference lies. The shader for collision filtering that I am using is exactly the same as the ones UE is using (minus some globally shared data only used for skeletal meshes).
In dynamic_convex_vs_static_convex.pvd the behavior is sort of crazy: the dynamic convex gets shot/teleported away as soon as it collides with the static one. Again, this time it seems to me that all the important parameters are either equal or just slightly different (eg: the mass of the dynamic actor), and such a huge difference in the simulation results boggles my mind. If anyone has any idea about what might be going on, I’d love to hear it.
Thank you very much,
PS: I also asked for help on the Unreal websites: https://answers.unrealengine.com/questions/334192/problem-with-separate-physx-scene-running-in-the-b.html