Jump to content

Pierre

Members
  • Posts

    27
  • Joined

  • Last visited

Posts posted by Pierre

  1. - Overall, Newton gives PhysX a run for it's money in accuracy in most cases although there are still quite a few where PhysX surpasses it. (Both great physics engines.) (Will link the tests PhysX wins in a sec.)

    - When it comes to accuracy of simple rigidbody collisions Newton always is the most accurate by far.

    - Overall, PhysX performs the best.

     

    Note that the performance / accuracy trade-off of each engine can be changed. What you get with each engine's default parameters is not the whole story.

     

    All engines use approximate "linear solvers", so both the performance and accuracy will depend on the number of iterations you choose. Then, they don't all use the same algorithms under the hood: you can have Gauss-Seidel, Jacobi, conjugate gradient, etc. These methods have pros and cons, and in particular they don't all converge at the same rate. So using the same number of iterations for all engines is not guaranteed to produce similar results in terms of accuracy.

     

    It was a bit of a problem for me in PEEL: what default parameters should I use? Bullet for example uses 10 iterations by default these days, while PhysX uses 4. So if use 4 iterations for everybody "to be fair", I'm artificially decreasing the accuracy of Bullet compared to what a fresh user would get out-of-the-box, using its default parameters. And on the other hand, if I use Bullet's default values, I can be accused of being unfair since some engines will now use more iterations than others. This is a tricky thing.

     

    In any case:

     

    - you can improve PhysX's accuracy by increasing the number of iterations in the UI. This will make it slower.

     

    - you can improve Newton's performance by decreasing the number of iterations in the UI. This will make less accurate.

     

    It's all a trade-off depending on what your game/app needs. These things are not black & white. At the end of the day all these engines are fairly mature and quite similar.

     

    Now as far as PhysX is concerned, extra iterations there seem cheaper than for other engines. So for that torus scene, for example, you can increase the iterations quite a bit (say from 4 to 32) and get a behavior that become closer to Newton's (while possibly still being cheaper, YMMV depending on which versions you're using). In the latest released PEEL (1.1), I added something in the PhysX UI to configure it either for performance or accuracy. This changes the results quite a bit for some of the scenes, in particular for the ones that Julio cherry-picked in his videos smile.png

     

     

    Another thing I found interesting about this demo is the fact that on my computer with an on-board chip operations like raycasting are EXTREMELY expensive and PhysX is by far the slowest.... but on my computer with a powerful dedicated GPU these same operations are by far the fastest on PhysX.

     

    I would be interested to hear about this. Which scene are you talking about? In my experience PhysX is pretty much always the fastest for "scene queries" (raycasts, overlaps, sweeps). And since these parts run entirely on the CPU, it should make no difference if you have a powerful GPU or not.

    • Upvote 2
  2. Hi there,

     

    I'm the guy who wrote PEEL. These videos (and Julio's PEEL master branch) unfortunately use an old work-in-progress version of PhysX 3.4. You can grab a more recent build here: https://github.com/Pierre-Terdiman/PEEL

     

    There is a long history regarding Newton in PEEL. Let's just say there are two sides to every story.

     

    There are also incorrect claims about PhysX in this thread, that I would be happy to talk about if people are interested. Most of the stuff I read online about PhysX is wrong :)

     

    Cheers,

     

    - Pierre

    • Upvote 1
×
×
  • Create New...