AGEIA, manufacturer of the first mass-market PPU cards, has come under pressure from upcoming graphics cards with integrated hardware physics, for example NVIDIA 8 Series Quantum Effects Technology. Only a few games support AGEIA PhysX cards so far, and if they don’t gain market share soon they will be second to the big GPU companies.
One effect of this pressure has been that AGEIA has lowered their license fees for their physics SDK some month ago. From 50000$ to ZERO! Commercial use too.
Maybe I will buy a PhysX card next month, maybe not. But even without hardware acceleration (530 million sphere/sphere collisions per second…duh) their physics engine is tremendous, both concerning speed and features. Whatever, here is a first preview for NxPanda (or whatever the final name will be. Nx because of Novodex, the original name for their physics engine):
The demo is compiled for windows, but AGEIA has a Linux SDK too. To run the demos you will need to have Panda3D-1.4.0 and the latest AGEIA PhysX system software (7.07.24). Beware, the system software is a large download. Not as large as Panda3D, but still ~30M:
For now I follow the PhysX API very closely, so integration with Panda3D is only “light”. But once I have learned more about using PhysX I might re-design and integrate more tight.
Only a very small part of the PhysX API is wrapped by now, and it will be some time before I work on more advanced features like fluids or soft bodies. Still, here are some highlights:
- Kinematic character controllers, with stair stepping, slop limit, jumping and crouching. Something I found to be tricky to implement with other physics engines (ODE, Newton). A small “mini game” is included. Hmmm… actually not a game since their is no goal for the player, so just a techdemo.
- Cloth. Well, see yourself. No tearing and attaching so far. Turn off the debug renderer to see the real fps (more than 500 on my PC).
The downside: PhysX might be powerful, but is not open source. This mean PhysX is not suited to replace the built-in collision & physics systems of Panda3D. It will always stay just an alternate way to do physics.