Thursday, October 10, 2019

physics - Unity's default integration method



Which method(s) does Unity provide for physical integration? RK4? Verlet? Euler?



Answer



For 3D, Unity uses PhysX. According to this answer, PhysX uses a symplectic integrator. The paper it cites as evidence is a bit more ambiguous though:



Since it is a commercial engine the implementation details are unknown ... Most physics engines provide results similar to the Symplectic Euler integrator, or 2nd order Euler. Novodex (Ageia PhysX) provided the best results.



The integration error graph shows it behaving slightly better than the "Euler 2nd order" reference implementation, and significantly better than the "symplectic Euler" reference integrator. So it looks to me like it's not a 100% off-the-shelf integrator, and has some custom adjustments that may be hard to duplicate without the source code.


For 2D, Unity uses Box2D, which uses Symplectic Euler, according to these forum posts.


No comments:

Post a Comment

Simple past, Present perfect Past perfect

Can you tell me which form of the following sentences is the correct one please? Imagine two friends discussing the gym... I was in a good s...