A quite interesting, unexpected and a little emotional article – The Evolution of PhysX – was published today by Pierre Terdiman, senior software engineer in NVIDIA and one of the developers of the original NovodeX engine.
The article provides in-depth performance comparison between various versions of PhysX SDK (2.8.4, 3.2 and 3.3 Beta), using well-known open-source Bullet physics engine as as a reference point.
The performance tests were performed using PEEL – Physics Engine Evaluation Lab, a specialized tool that is using within NVIDIA to research behaviour and performance of various physics engines using a set of standartized scenes.
“The Evolution of PhysX” article is devided into 13 chapters, each one filled with graphs and detailed technical explanations of the test results:
- Introduction and PEEL overview
- Rigid bodies – stacking (boxes)
- Rigid bodies – stacking (convexes)
- Rigid bodies – piles of objects
- Rigid bodies – compounds
- Rigid bodies – collisions with triangle meshes
- Scene queries – raycasts (simple shapes)
- Scene queries – raycasts (meshes)
- Scene queries – sweep tests (simple shapes)
- Scene queries – sweep tests (meshes)
- Final results and conclusion
The results of the tests are quite revealing:
Firstly, even the relatively old PhysX SDK 2.8.4 is showing, in many cases, more consistent performance than Bullet 2.81 engine, while accused by many for being crippled and highly un-optimized for CPU execution (Please note that we are not talking about performance of GPU PhysX effects here).
Secondly, it is clear now that PhysX SDK 3.x offers stable performance improvements over the previous generation, while latest PhysX SDK 3.3 is significatly faster (sometimes by several orders of magnitude) than any of the PhysX SDKs or the competition. One more reason to sign up for SDK 3.3 Beta testing.
And finally, the conclusion from Mr. Terdiman
The point is simply, again, that contrary to what people may still believe, PhysX is actually very optimized and a perfectly fine CPU physics engine. In fact, if some competitors would not prevent me from publishing the results, I would happily show you that it often beats everybody else.
I invite curious readers to create their own benchmarks and see for themselves.