Category:PhysX SDK
From PhysX Wiki
NVIDIA PhysX SDK is proprietary, multi-platform, realtime physics engine middleware. Middleware physics engines allow game developers to avoid writing their own code to handle the physics simulation, and focus on other aspects of the game.
While PhysX SDK is mostly used to calculate in-game physics on CPU, some games and applications are supporting enhanced hardware accelerated physics effects - running normally only if appropriate NVIDIA GPU is found the system. More details: NVIDIA PhysX Technology
Since Q1 2007, binary version of PhysX SDK is free for commercial and non-commercial use.
Generations
PhysX SDKs can be devided into two generations:
- PhysX SDK 2.x (SDK 2.3.0 - 2.8.4) is originally based on NovodeX physics engine codebase, maintained and upgraded by both Ageia and NVIDIA over the years.
- PhysX SDK 3.x (SDK 3.0 - 3.2) is a significant rewrite of PhysX SDK with enhanced architecture and API. SDK 3.x is more effective in terms of performance, features and flexibility.
Common delusions
- PhysX SDK is written on CUDA and works only on NVIDIA GPUs
- For PhysX SDK 2.x: Actually, only some parts of PhysX SDK code were rewritten on CUDA after Ageia was aquired by NVIDIA, to support hardware acceleration on NVIDIA GPUs. Main in-game physics calculations, like collision detection, character controller, rigid body physics or ragdolls, are always running on CPU (even in games with GPU PhysX support). GPU hardware acceleration, in other case, is used mostly for additional physics effects, like particles (fluids, dynamic smoke, debris and chunks from explosions) and cloth (clothing and hair simulation on characters, cloth banners and flags).
- Thus, if you plan to integrate PhysX SDK into your game engine, or use PhysX plug-ins, you don't need an NVIDIA GPU, unless you'll want to use hardware accelerated features.
- Entire PhysX SDK on CPU is hobbled by NVIDIA, and is slowest physics engine on the market.
- Most of the claims to PhysX (x87 instructions usage, lack of multi-core optimizations) are applied to CPU execution of supplementary GPU PhysX content in games, and not general PhysX SDK performance. Purpose of GPU PhysX content is to give advantage (in form of additional effects or performance) to owners of NVIDIA GPUs, and not to demonstrate the wonders of CPU optimization.
- But in fact, developers are pretty satisfied with PhysX SDK efficiency on CPU, and huge number of released PC games is a good indicator.
| “ | I've often seen people on the forums cite articles about how NVIDIA has cobbled the software PhysX engine, but in my experience the performance of PhysX is better than other software engines like Bullet. | ” |
| - Max McGuire, Technical Director, Unknown Worlds Entertainment | ||
| “ | That's the common misconception that PhysX 2.X cannot be multithreaded. Actually it is internally designed to be multithreaded! The only thing – it takes some programmer time to enable that multi-threading. | ” |
| - Oles Shishkovtsov, Chief Technology Officer, 4A Games | ||
External Links
| ||||||||
Pages in category "PhysX SDK"
The following 5 pages are in this category, out of 5 total.

