Free source code access for Windows, Linux, OS X and Android.
Real-time simulation and rendering of realistic hair and fur
Recently released Ranger Pack DLC (will be downloaded automatically via Steam, if auto-update is enabled) for Metro 2033 has brought us not only new Hardcore mode, new achievements and new guns, but also a nice standalone Benchmarking Tool.
It uses intensive firefight sequence from Frontline level, and has well-thought-out interface with lots of settings and additional features, like framerate graphs generation after the test.
Benchmark can be used to measure GPU PhysX performance, since it includes some effects affected by “Advanced PhysX” option, like grenade explosions and particles from bullet impacts (5000+ particles in most intensive scene).
In addition, cloth simulation (several banners at benchmarking sequence start – around 1700 cloth vertices in total) supports GPU acceleration too.
In Mafia II, as you may notice from our comparison video, clothing simulation on main character (Vito Scaletta) is present regardless to APEX PhysX settings, main difference is in Cloth detalization and used technologies – standart PhysX Cloth (APEX PhysX Off) and more advanced APEX Clothing module (APEX PhysX Medium/High).
Clothing detalization is mostly determined by number of vertices, forming a physical cloth mesh.
So, just for curiosity, we decided to count them in Mafia II (with help of AgPerfMon profiler), using different APEX PhysX settings and various Vito’s suits.
Everyone who played Mafia II will eventually notice, that enabling special APEX PhysX content will not only bring you flowing clothing and particle debris, but also significantly reduce framerate – even if you have a proper NVIDIA GPU and latest PhysX System Software.
Update: APEX Clothing in numbers
Update #2: Tests with dedicated PhysX GPU added – PART III.
While preparing our PhysX tweaking guide we have discovered that physically simulated clothing on characters is affecting performance the most. Why that ? Cloth is one of the basic effects, used intensively in many GPU PhysX games – just remember Mirror’s Edge and it’s countless tearable banners and flags. Two answers come to mind:
- Clothing simulation in Mafia II is so detailed and so high-resolution, that only top dedicated GPUs can run it at proper fps.
Unlikely. Even in most intensive scenes total cloth vertices count is not exceeding 8000, while framerate is crawling around 20 fps – on GTX 470.
- Clothing simulation is running on CPU, while it is supposed to be hardware accelerated on GPU.
Plausible. But, as our further tests have revealed, proved to be true for single GPU systems only.
Combine it with facts that a) Cloth in PhysX SDK is not using all available CPU resources by default b) Clothing is heavy computational task in any case – and you’ll see the probable reason of poor performance. Let’s check this theory.
PART I – MAFIA II BENCHMARK.
For the first part of tests we’ll use benchmark, built into Mafia II, running with two sets of APEX effects – Clothing only (Particles are disabled using methods from tweaking guide) and Particles only (Clothing is omitted) – and PhysX acceleration enabled/disabled from NVIDIA Control Panel.
Settings: 1680x1024, AO/AA On, AFx16, APEX High. System: C2Q 9400, GTX 470, 4GB RAM, Win 7 x64, 198.32 GPU drivers, PSS 9.10.0513
Interesting results. While Particles are benefiting from GPU acceleration without doubt, PhysX switch is not affecting Clothing simulation at all.
It seems our assumption was correct – APEX Clothing is calculated on CPU in any case – but let’s confirm it with some deeper research.
We are completing our overview of APEX PhysX content in Mafia II by this video, showcasing most noticable effects based on APEX Particles module.
Previous comparison video, dedicated to APEX Clothing module, is available here.
If YouTube video is not working for you, you can watch alternative variant at Vimeo
APEX Particles effects are including:
- Various dynamic debris (concrete fragments, glass pieces, wood splinters, etc) from bullet impacts.
- Additional physically simulated chunks from explosions, car crashes, wheel slip, trash cans, mailboxes and other destructible objects.
- Vehicle tire burnout effect - realistic fluid smoke, which reacts to environment and character/NPC movement.
- Up to 3000 (APEX Medium settings) or 10 000 (APEX High settings) unique particles on screen.
Sum: You can find dynamic particles almost in every single GPU/PPU PhysX game, but in Mafia II particle effects are close to their perfection – realistic collision simulation, various particle types (for both graphical mesh and physical behaviour), LOD based resource management (particles are not dissapearing over time, like in earlier games) – and, most important, pretty decent performance.
If your system can handle such effects, we recommended to leave them enabled, or you’ll loose significant piece of game’s immersion.
Finally, keep an eye on Mafia II GPU PhysX info mini-site for additional information and comparison screenshots.
Mafia II, likely most important GPU PhysX title for this year, was released just a few days ago, and as usuall we have prepared some PhysX comparison materials.
This particular video is focused on how APEX Clothing module is used the enhance game experience.
Update: Part II, dedicated to APEX Particles effects, is released.
Update #2: APEX Clothing in numbers
In general, APEX Clothing content includes:
- Much more detailed (you can even notice how wrinkles are formed), fully simulated clothing for main character – Vito Scaletta.
Standart PhysX Cloth is still being used on consoles and PC (APEX Off settings), but in comparison to APEX Clothing based simulation (APEX High and Medium settings), it is looking chunky and crusty.
- Dynamic clothing for additional characters (Joe, Derek, Steve, etc) and some NPCs, instead of simple skinned mesh.
- Several supplementary effects, like cloth reaction to the wind and shockwaves from explosions.
Sum: High-resolution clothing simulation is nice looking, immersive and promising technology. However, in Mafia II resources are used not optimally – hardly noticable, but very demanding clothing simulation on NPCs can bring your system to knees.
Fortunately, PhysX tweaks discovered for Mafia II demo are working nicely in final version too. Following this guide, you can easily tweak amount of APEX Effects (for example, disable clothing simulation for NPC, but leave it for Vito) and find a compromis between visual fidelity and performance.
Also, keep an eye on Mafia II GPU PhysX info mini-site for additional information and comparison screenshots.
Mafia II is about to hit the shelves in US, and since it is, probably, most heavyweight title in 2010 GPU PhysX games line, we can expect a lot of detailed reviews about APEX PhysX special effects, added to the game.
We’ve already posted an benchmarks overview for Mafia II Demo, so let’s focus on final version now:
[23.08.10] Mafia II: Perfection for NVIDIA’s Graphics Plus Technologies ? by HardwareCanucks
APEX effects decription and comparison are pretty basic, and only two GPUs [GTX460/GT240 dedicated] were used for testing, but enough attention was paid to CPU scailing [i5/i7] and CPU usage graphs.
According to benchmarks results, Mafia II is pretty playble on CPU even with APEX set to High.
In the past NVIDIA and their developers took an incredible amount of flak over the use of GPU-processed physics due to the utter lack of optimizations the PhysX API had for the CPU. With Mafia II’s use of the open-minded APEX routines, a corner seems to have been turned because we finally see that it is possible to run these calculations quite smoothly with only a few hiccups on a multi core CPU.
The GPU is still more efficient at physics processing but in some cases you will likely want all of the rendering horsepower it brings to the table. This feature is still nothing more than eye candy but if you can run it, we suggest you do so because it does increase the overall believability of certain scenes.
Mafia II in Slow Motion 3 by MikeX1978
Being immersive enough, APEX Particles are looking even better in slowmotion.
BioReplicant Crowd Simulation by ActionReactionLabs
Dynamic animation system (yes, like Euphoria) prototype, called “BioReplicant”. This crowd simulation demo is based on PhysX SDK.
Newest PhysX SDK 18.104.22.168 is ready for public beta testing – this is last and most stable current generation SDK, next one is going to be 3.0.
In addition, SDK 2.8.4. will be used as basis for upcoming APEX 1.0 toolset.
[18.08.10] Update: Release notes were supplemented with “driverless” mode description.
[19.08.10] Update #2: bug in the PhysXLoader code, that was preventing it from loading the local DLLs in 2.8.4, is now fixed. Replace the PhysXLoader.dll and PhysXLoader64.dll in your SDK installation with the new files from the archive “2.8.4_Loader_patch.rar“, found in the 2.8.4 folder on the developer download site.
[20.08.10] Update #3: PhysX SDK 22.214.171.124 with fixed PhysXLoader .dlls and included (previously missing) PhysXDevice.dll – is ready.
Currently, binary builds are available for 32- and 64-bit PC Windows, and Xbox 360
- Removed PhysX Loader source code from source distribution. THIS WILL BE REVERTED FOR RELEASE. PhysXLoader code will be supplied to source licensees.
- Discontinued the Training Programs.
- Added source code of NxTetra (tet-maker) utility to source distribution.
- Removed spin waits from sample code.
- Added API to permit the user to specify the order in which compartments are simulated.
- Added compression limits to cloth.
- Cloth simulation no longer performs prediction for kinematic rigid bodies for improved interaction behavior.
- New driverless loader option for PC CPU distribution. In 2.8.4, application developers must ship PhysXCore.dll, PhysXCooking.dll, the cudarXX_XX_X.dll and physxdevice.dll with the application ‘locally’, in the directory where the .exe is located:
1. The application requests PhysXCore or PhysXCooking (v 2.8.4) from the PhysXLoader.
2. PhysXLoader searches for another DLL called ‘PhysXUpdateLoader’.
3. If PhysXUpdateLoader is not found, PhysXLoader will load the local PhysXCore or PhysXCooking.
4. If PhysXUpdateLoader is found, it looks for an updated replacement for the PhysXCore or PhysXCooking dlls.
5. If PhysXUpdateLoader cannot find the specified replacement DLL, PhysXLoader will load the local PhysXCore or PhysXCooking dlls.
6. If PhysXUpdateLoader can find the replacement DLLs, these will be loaded in place of the local PhysCore or PhysXCooking dlls.
7. The net result is that the developer has more control over the game installation process, doesn't have to worry about shipping a large System Software with the game, doesn't have to worry that the player will break his System Software somehow, etc.
Mafia II demo version was released only few days ago, but several websites have already prepared some benchmarking and testing articles, focused on APEX PhysX part of the game.
Update: Mafia II Final version – PhysX Reviews roundup.
[11.08.2010] Mafia II – Public Demo GPU test by gamegpu.ru
Russian article. Includes game overview and detailed testing part, with various settings and used ATI/NV GPUs.
[11.08.2010] Mafia II Performance Benchmarks: PhysX and 3D Vision Tested by HiTechLegion
Decent review, with some PhysX benchmarks. Author’s conclusion – “I would rather trade graphical quality than play the game in its highest settings with PhysX disabled.”
Since Mafia II Demo is a hot topic these days, lets browse through most decent videos, showcasing APEX PhysX effects in this title.
Mafia 2 Demo – PhysX Tire Smoke by MrTeeh
Immersive tires burnout effect – with dynamic smoke simulation. Best look with APEX set to High, as particle count is much bigger. One of the best SPH smoke simulation so far – comparing to other PhysX games.
Mafia II smoke turbulence by gbushimprov
Another demonstration of dynamic smoke effect.