Strange Collision at high-velocity

Hey,

I am currently experiencing weird collision responses in 4.15 with high-velocity spheres.(worked fine in 4.13) Depending on the speed if you shoot a sphere in a curve it can with high consistency happen that the sphere comes right back to the user instead of riding the curve. This only happens with a very small min and max contact offset which I desperately need for my game to function properly with the set-pieces I use.

Anyway here is the example in the PhysX Visual Debugger where you can directly see what is happening.

133456-1.jpg

As you can see in the first frame before the Hit the velocity (white line) is the velocity I have used to direct the sphere in the direction shown. Now in the next frame it should calculate the correct angle but here is where it goes wrong.

133457-2.jpg

Instead of having the correct angle from the incoming direction it seems like it just inverted the angle instead of calculating a new correct angle. This is the point where everything goes wrong.

In the next frame, the sphere will choose the previously inverted angle instead of the actual angle from first frame and thus the sphere comes back to the user. So somewhere in the second frame something goes wrong which results in this unusual behaviour I would like to fix.

Can someone tell me what the cause of this could be and how I might be able to fix it without having to change the contact offset or sub-stepping (which I already use)?

Thanks

I’m currently having the exact same problem, did you manage to find a solution? I’ve recently upgraded from 4.14 to 4.17 and it has been happening ever since.

I am also having this exact problem. My sphere when traveling fast into a curve will sometimes bounce backwards in the same exact manner you have described. I am also using low min/max contact offsets for probably similar reasons as you.

I’m on 4.17, would love to hear some information on this.

I did find a Solution to this on the Epic GitHub branch. After implementing this commit GitLink into my source and recompiled PhysX and using those new libs. The latter part I can’t remember exactly how to recompile and use it but I am positive that the 2 lines of changes in the GuCCDSweepConvexMesh.cpp fixed it in my game.
It is still rather strange that it doesn’t work on 4.16/4.17 since I believe this was fixed for 4.16 with that commit. But apperently not.

I did find a Solution to this on the Epic GitHub branch. After implementing this commit GitLink into my source and recompiled PhysX and using those new libs. The latter part I can’t remember exactly how to recompile and use it but I am positive that the 2 lines of changes in the GuCCDSweepConvexMesh.cpp fixed it in my game.
It is still rather strange that it doesn’t work on 4.16/4.17 since I believe this was fixed for 4.16 with that commit. But apperently not.