Bullet vs PhysX: A breakdown
Both AMD and NVIDIA are betting the farm on their own unique implementation of physics; each is similar to the other, but there are some clear differences. NVIDIA's tried-and-true choice is PhysX, a library that can run on either the CPU or GPU across not only the PC, but also the Wii, PlayStation 3 and Xbox 360 - as well as Linux. Acquired when NVIDIA purchased Ageia in February 2008, PhysX is a proprietary physics engine that allows game developers to enable physics effects in their titles. NVIDIA boasts an impressive list of supported titles, but does not directly benefit from all supported platforms; they receive no additional hardware sales by supporting the Wii and Xbox 360.
AMD on the other hand are backing Bullet, a new physics library that is currently under development by Erwin Coumans, an employee of Sony Computer Entertainment. Bullet is open-sourced under the zlib license, meaning that it is entirely free to incorporate into games and it's got support for the same platforms as PhysX. On top of the gaming platforms, it's also supported by Maya and other content creation packages, and while the list of titles isn't quite where PhysX is, there are an increasing amount of titles under development that use Bullet. A standout title that used Bullet was Grand Theft Auto 4; and it's also seen use in some movies by Sony Pictures.
A third contestant in the physics arena is Havok, an engine owned by CPU manufacturer Intel. It offers the widest range of support for platforms, with handhelds supported alongside all consoles, and offers a gigantic list of titles. The three physics APIs are summarised here:
|
API
|
PhysX
|
Bullet
|
Havok
|
|
Proprietary
|
Yes, NVIDIA
|
No
|
Yes, Intel
|
|
Platform Support
|
GPU: PC, Mac
CPU: PS3, 360, Wii, iPhone
|
GPU: PC
CPU: Mac, Linux, PS3, 360, Wii, iPhone
|
GPU: Limited
CPU: PC, Mac, Linux, PS3, PS2, PSP, Wii,360, Xbox
|
|
Threading
|
GPU: Multiple
CPU: Developer-dependent
|
GPU: Multiple
CPU: Multiple
|
GPU: Unknown
CPU: Multiple
|
|
Game Support
|
Extensive
|
Limited
|
Extensive
|
|
3D tools
|
Maya, Lightwave, Blender, Houdini, 3DSMax
|
Maya, Lightwave, Cinema 4D, Blender, Houdini
|
Maya, 3DSMax, Cinema 4D (through Shockwave)
|
It's clear that the three different solutions are similar in effectiveness, though Bullet is currently quite limited in reach. Knowing this, what do AMD and NVIDIA think about their offerings?