Archive for the ‘GRB’ tag
NVIDIA has finally released first public version of the newest PhysX SDK 3.4 (and corresponding APEX 1.4). Please mind the pre-release status, final SDK should be available end of February 2017.
One of the biggest features of the SDK 3.4 is the introduction of the GPU accelerated rigid body feature (GRB). It supports the entire rigid body pipeline feature-set (except for articulations). The state of GPU rigid bodies can be modified and queried using the exact same API as used for CPU rigid bodies. GPU rigid bodies can interact with clothing and particles in the same way that CPU rigid bodies can and can easily be used in conjunction with character controllers and vehicles.
Leveraging computing capabilities of a graphic processor, GPU accelerated rigid bodies can provide significant performance advantages over CPU simulation in scenes with several thousand active rigid bodies.
At Game Developer Conference 2016 (GDC), NVIDIA has announced the GameWorks 3.1 development kit, which introduces several new physics simulation solutions – PhysX GRB and NVIDIA Flow. Let’s take a look at them more closely:
PhysX GRB is the new GPU accelerated Rigid Body simulation pipeline. It is based on heavily modified branch of PhysX SDK 3.4, but has all the features of the standard SDK and almost identical API. PhysX GRB is currently utilizing CUDA and requires NVIDIA card for GPU acceleration.
Unlike previous implementations, PhysX GRB is featuring hybrid CPU/GPU rigid body solver, and the simulation can be executed either on CPU or GPU with almost no difference in behavior, supported object types or features (GPU articulations are not implemented yet, however).
GRB provides GPU accelerated broad phase, contact generation, constraint solver and body/shape management. In addition, it introduces new implementations of island management and pair management that have been optimized to tolerate the order of magnitude more complex scenes that can be simulated on GPU compared to CPU. New mechanisms to parallelize event notification callbacks and a new feature to lazily update scene query asynchronously are also provided.
A quite interesting addition to Hawken, MMO mech shooter with GPU PhysX support, was demonstrated by NVIDIA booth PAX East 2013. We are talking about one of the most exciting physics features – fully destructible environment.
Update: all the new features are promised to be included in a patch, coming out in April.
Update #2: GeForce.com article – Hawken Destructible Map Demoed & Detailed
A special level, consisting of APEX Destruction assets such as destructible building and barriers, was showcased as proof of concept illustrating how destruction will work, when it will be eventually added to Hawken.
Official features are listed as follows:
We want to draw your attention to the following SIGGRAPH 2012 paper, called “Mass Splitting for Jitter-Free Parallel Rigid Body Simulation” by Richard Tonge (NVIDIA), Feodor Benevolenski (NVIDIA) and Andrey Voroshilov (NVIDIA).
We present a parallel iterative rigid body solver that avoids common artifacts at low iteration counts. In large or real-time simulations, iteration is often terminated before convergence to maximize scene size. If the distribution of the resulting residual energy varies too much from frame to frame, then bodies close to rest can visibly jitter. Projected Gauss-Seidel (PGS) distributes the residual according to the order in which contacts are processed, and preserving the order in parallel implementations is very challenging. In contrast, Jacobi-based methods provide order independence, but have slower convergence.
We accelerate projected Jacobi by dividing each body mass term in the effective mass by the number of contacts acting on the body, but use the full mass to apply impulses. We further accelerate the method by solving contacts in blocks, providing wallclock performance competitive with PGS while avoiding visible artifacts. We prove convergence to the solution of the underlying linear complementarity problem and present results for our GPU implementation, which can simulate a pile of 5000 objects with no visible jittering at over 60 FPS.
As you may see, one of the main features of this solver is fast and stable simulation without jittering, even with high number of contacts.
Thanks to Jesse Stiller for the link.
Multiplayer online shooter “Passion Leads Army” (PLA), currently in development by Giant Interactive in cooperation with the Chinese military, was firstly showcased (as a real-time benchmark demo) during Jen-Hsun Huang Keynote at NVIDIA Gaming Festival.
Featuring full DX 11 support (for the first time – in Chinese game) and intense GPU PhysX effects, this UE3 based title has drawn much attention of the audience.
Now, public release of PLA Benchmark gives us the opportunity to try it out by ourselves.
Update: PLA Benchmark overview at GeForce.com
Following DX11 effects can be seen in the benchmark:
- Horizon-Based Ambient Occlusion (HBAO).
- Bokeh-DOF effect.
As for GPU PhysX content, it includes:
- GPU accelerated rigid bodies (destruction scenes).
- APEX Particles effects (leafs, sparks, debris, dynamic fog).
- Interactive and tearable PhysX cloth objects.
Unfortunately, UDN documentation was not yet updated, and some flaws were found in this release - for example, APEX GPU Rigid Body libraries are missing from the February distribution. Not to mention, that not all APEX 1.1 features have made it into UDK.
UPDATE: March UDK is released. Issues with missing GRB libraries were resolved.
UPDATE #2: November 2012 release of UDK adds APEX 1.2.1 support
Let’s take a look on some of the new features in APEX 1.1 integration we were able to discover:
APEX DESTRUCTION 1.1:
For additional data on Destruction Module please refer to UDN page
- GPU Rigid Bodies (GRB). One of the most interesting features of 1.1 release is new ability to calculate rigid body physics on CUDA-capable GPUs, thus achieveing performance improvement in scenes with many destructible actors and simulated chunks, while using exact same assets and settings as for CPU physics.
----- Following is valid only for February 2012 UDK
As we have mentioned, current GRB implementation is missing vital libraries and also has some bugs: you can either wait until March UDK release or try it out now (for your own risk) – using our .dll package (36 mb).
Copy “GRB_1_x86.dll” and “pxtask_cuda_x86.dll” to “UDK\Binaries\Win32\” folder.
Copy “GRB_1_x64.dll” and “pxtask_cuda_x64.dll” to “UDK\Binaries\Win64\” folder.
---- Previous is only valid for February 2012 UDK
Now, to enable GRBs you need to set following parameters in “Engine\Config\BaseEngine.ini” file:
NVIDIA has released APEX SDK 1.1 (Build 112), next version of NVIDIA APEX – scalable dynamics framework, oriented on complex physical simulations.
Update: APEX 1.2 is available
In comparison to APEX 1.0 Beta, new version includes many bugfixes, several additions to underlying framework and various new features, like ability to calculate rigid body physics on GPU.
APEX 1.1 contains only Destruction and Clothing modules, and is still based on PhysX SDK 18.104.22.168 – first version with PhysX 3 support is going to be APEX 1.2 (that is supposed to be released in a few months).
NVIDIA APEX SDK 1.1 is available for download at Developer Support Center.
If you are experiencing trouble with registration of PhysX Developer account, please refer to our registration guide.
APEX DESTRUCTION 1.1
- GPU Rigid Bodies: the NxModuleDestructible has settings to enable calculation of Rigid Body physics on GPU.
Highly anticipated feature. While using same assets and same settings, GPU Rigid Bodies are showing significantly higher performance – 70 fps for 5000+ rigid body chunks on single GTX 580 vs 10 fps on Core i7 2600K.
One-way interaction with dynamic CPU actors is also supported (via transfer of momentum). GPU accelerated rigid body physics requires NVIDIA driver 270.81 or later, PhysX 2.8.4 RC6 or later and a CUDA capable GPU.