PhysX
![]() | |
Developer(s) | Nvidia Corporation |
---|---|
Stable release | 9.10.0514
/ September 14, 2010 |
Repository | |
Operating system | Windows 7, Windows Vista, Windows XP, Mac OS X, Linux (not GPU accelerated), Wii, PlayStation 3, Xbox 360 |
Type | Physics simulation |
License | Proprietary, Freeware, Commercial |
Website | Nvidia PhysX developer site |
PhysX is a proprietary realtime physics engine middleware SDK acquired by Ageia (which itself was acquired by Nvidia in February 2008[1]) with the purchase of ETH Zurich spin-off NovodeX in 2004. The term PhysX can also refer to the PPU add-in card designed by Ageia to accelerate PhysX-enabled video games.
Video games supporting hardware acceleration by PhysX can be accelerated by either a PhysX PPU or a CUDA-enabled GeForce GPU (which has at least 32 CUDA cores), thus offloading physics calculations from the CPU, allowing it to perform other tasks instead — resulting in a smoother gaming experience and additional visual effects.
Middleware physics engines allow game developers to avoid writing their own code to handle the complex physics interactions possible in modern games.
The PhysX engine and SDK are available for the following platforms:
Nvidia provides both the engine and SDK for free to Windows and Linux users and developers.[6] The PlayStation 3 SDK is also freely available due to Sony's blanket purchase agreement.
APEX PhysX
Nvidia APEX PhysX technology is a multi-platform scalable dynamics framework first introduced in the Mafia II PC video game in August 2010. NVIDIA's APEX PhysX physics modeling engine adds the following features: APEX Destruction, APEX Clothing, APEX Vegetation, and APEX Turbulence.[7]
Nvidia acquisition
In February 2008, Nvidia bought Ageia and the PhysX engine and begun integrating it into its CUDA framework, effectively rendering the PhysX add-in card redundant.[8]
In August 2008, Nvidia started to release drivers that allow GeForce 8 series and above video cards to implement PhysX processing.[9]
Hardware
PPU
A physics processing unit (PPU) is a processor specially designed to alleviate calculations from the CPU, specifically calculations involving physics. Soon after the release of Ageia's PPU, graphics card manufacturers announced plans to implement similar functionality via the GPU. Support for the Ageia PPU was dropped for Windows 7.[10]
PhysX P1 (PPU) hardware specifications
ASUS and BFG Technologies bought licenses to manufacture alternate versions of AGEIA's PPU, the PhysX P1 with 128MB GDDR3.
- Multi-core MIPS architecture-based device with integrated physics acceleration hardware and memory subsystem with "tons of cores"[11]
- 125 million transistors[12]
- 182 mm2 die size
- Memory: 128 MB GDDR3 RAM on 128-bit interface
- Interface: 32-bit PCI 3.0 (ASUS also made a PCI-Express 1x version card)
- Sphere collision tests: 530 million per second (maximum capability)
- Convex collision tests: 530,000 per second (maximum capability)
- Peak Instruction Bandwidth: 20 billion per second
- Peak Power Consumption: 30 W
- Fabrication Process: 130 nm
- Price: Between $100–250 in the USA, £75–145 (inc VAT) in the UK
GPU
A graphics processing unit or GPU (also occasionally called visual processing unit or VPU) is a dedicated graphics rendering device for a personal computer, workstation, or game console. Modern GPUs are very efficient at manipulating and displaying computer graphics, and their highly parallel structure makes them more effective than general-purpose CPUs for a range of complex algorithms such as accelerating physics using PhysX. A GPU can sit on top of a video card, or it can be integrated directly into the motherboard. More than 90% of new desktop and notebook computers have integrated GPUs.
Any CUDA-ready GeForce graphics card (series 8 and newer, having 32 or more cores and 256MB or more of video memory[13]) can take advantage of PhysX without the need to install a dedicated PhysX card.
Versions 186 and newer of the ForceWare drivers disable PhysX hardware acceleration when a GPU from a different manufacturer, such as AMD, is present in the system.[13] Representatives at Nvidia stated to customers that the decision was made due to development expenses, and for quality assurance and business reasons.[10][14] This decision has caused a backlash from the community that led to the creation of a community patch for Windows 7, circumventing the GPU check in Nvidia's updated drivers. Nvidia also implemented a time bomb in versions 196 and 197 which slowed down hardware-accelerated PhysX and reversed the gravity, leading to unwanted physical effects[15] - which was again remedied by the updated version of the community patch.[16]
At first it was believed that Nvidia removed this restriction in the beta release of the 257.15 drivers, rendering the patch useless; but Nvidia updated their blog[17] announcing that this was a "bug" and that ATI/PhysX support will be disabled in the official WHQL certified release.[18]
Another patch is working for PPU and gets Batman: Arkham Asylum, for example, to work on Windows 7 in "normal" PhysX settings ("high" settings requires a very powerful PPU).[19]
Real World Technologies analysis
On 5 July 2010, Real World Technologies published an analysis[20] of the PhysX architecture. According to this analysis, most of the code used in PhysX applications is based on x87 instructions without any multi-threading optimization. This could cause significant performance drops when running PhysX code on the CPU. The article suggests that a PhysX rewrite using SSE instructions may substantially lessen the performance discrepancy between CPU PhysX and GPU PhysX.
In response to the Real World Technologies analysis, Mike Skolones, product manager of PhysX, said[21] that SSE support has been left behind because most games are developed for consoles first and then ported to the PC. As a result, modern computers run these games faster and better than the consoles even with little or no optimization. Senior PR manager of Nvidia, Bryan Del Rizzo, explained that multi-threading is already available with CPU PhysX 2.x and that it is up to the developer to make use of it. Automatic multi-threading and SSE will be introduced with version 3 of the PhysX SDK.[22]
Title support
Video games that support PhysX include Batman: Arkham Asylum, Crazy Machines 2, Cryostasis: Sleep of Reason, Dark Void, Darkest of Days, Metal Knight Zero Online, Mirror's Edge, Nurien, Sacred 2, Star Tales, Tom Clancy's Ghost Recon Advanced Warfighter 2, Unreal Tournament 3, Unreal Tournament 3: Extreme Physics Mod, U-WARS, Mafia 2 and Warmonger: Operation Downtown Destruction[23]
Other software with support includes:
- Futuremark's 3DMark Vantage benchmark is able to take advantage of PhysX.[24]
- DarkPHYSICS upgrade to DarkBASIC Professional (A BASIC-like game building language) uses the PhysX SDK.[25]
- DX Studio, an integrated development environment for creating interactive 3D graphics.[26]
- PhysX is integrated into Emergent's Gamebryo engine.[27][28]
- Open source rendering engine OGRE can use Ageia PhysX through the NxOgre wrapper.
- The Physics Abstraction Layer can use PhysX,[29] and provides COLLADA and Scythe Physics Editor support for PhysX.
- Microsoft Robotics Studio[30]
- Unity Technologies' Unity, an integrated 3D authoring tool[31]
- Epic Games' Unreal Engine 3 uses PhysX.[32] This may offer physics that are not possible on a normal CPU core in real time.
- 4A Games' 4A Engine uses PhysX. This was most recently demonstrated in their game, Metro 2033.
- Shadowgrounds and Shadowgrounds Survivor can utilize PhysX, becoming the first commercial Linux games to be able to do so.
See also
References
- ^ "NVIDIA completes Acquisition of AGEIA Technologies" (Press release). NVIDIA Corporation. 2008-02-13. Retrieved 2009-03-18.
- ^ http://www.gamasutra.com/php-bin/news_index.php?story=22812
- ^ "Sony Computer Entertainment Enters Into Strategic Licensing Agreement With AGEIA" (PDF) (Press release). Sony Computer Entertainment, Inc. 2005-07-21. Retrieved 2006-08-23.
- ^ "Playstation 3 gets free PhysX from Nvidia". Kotaku.
- ^ http://www.nvidia.com/object/nvidia_physx.html
- ^ http://developer.nvidia.com/object/physx.html
- ^ Olin Coles. "Mafia-II Video Game Performance Review". BenchmarkReviews.com. Retrieved 2010-08-23.
- ^ "PhysX For CUDA, Linux Support A Given?". Phoronix. Phoronix Media. 2008-02-14. Retrieved 2008-02-14.
- ^ "GeForce Power Pack". Nvidia Corporation.
- ^ a b Official Nvidia position on hybrid ATI+NV PhysX configurations
- ^ "PhysX FAQ". NVIDIA Corporation.
- ^ Legit Reviews - ASUS's AGEIA PhysX P1 Card
- ^ a b http://www.nvidia.com/object/physx_faq.html
- ^ http://www.ngohq.com/graphic-cards/16223-nvidia-disables-physx-when-ati-card-is-present.html
- ^ http://www.geeks3d.com/20100422/hybrid-physx-patch-1-03-with-reverse-gravity-timebomb-fix/
- ^ http://www.ngohq.com/graphic-cards/17706-hybrid-physx-mod-v1-03-a.html
- ^ http://blogs.nvidia.com/ntersect/2010/05/update-on-release-256-physx-support-1.html
- ^ http://physxinfo.com/news/3117/release-the-hybrids-nvidia-reconsiders-ati-nv-physx-setups/
- ^ http://www.ngohq.com/news/16560-patch-re-enables-physx-when-ati-card-is-present.html
- ^ Real World Technologies - PhysX87: Software Deficiency
- ^ http://arstechnica.com/gaming/news/2010/07/did-nvidia-cripple-its-cpu-gaming-physics-library-to-spite-intel.ars
- ^ http://www.thinq.co.uk/2010/7/8/nvidia-were-not-hobbling-cpu-physx/
- ^ "PhysX Games List". nZone. Nvidia Corporation.
- ^ "AGEIA Joins Futuremark's 3DMark Benchmark Development Program". FindArticles. CBS Interactive. BusinessWire. 2006-09-27. Retrieved 2008-11-03.
- ^ "The Game Creators Integrate AGEIA PhysX Technology into DarkBASIC Professional" (Press release). The Game Creators. 2006-03-22. Retrieved 2006-09-23.
- ^ "Overview". DX Studio. Worldweaver. Retrieved 2008-11-02.
- ^ Alexander, Leigh (2008-08-19). "Emergent, Nvidia Integrate PhysX Into Gamebryo". Gamasutra. Think Services. Retrieved 2008-11-05.
- ^ Dobson, Jason (2007-06-18). "Emergent Adds DX10, PhysX To Gamebryo". Gamasutra. Think Services. Retrieved 2008-11-05.
- ^ Boeing, Adrian. "Engines". Physics Abstraction Layer. Retrieved 2007-11-18.
- ^ "Simulation Overview". Microsoft Robotics Developer Center. Microsoft.
- ^ "Unity Features". Unity Technologies. Retrieved 2008-11-03.
- ^ "The Unreal Physics system". Epic Games. Retrieved 2008-11-02.