Archive for 2016
Without any broad announcement (yet, probably), NVIDIA has released a Unreal Engine 4 custom source code branch with the integration of the completely new GPU fluid solver called Cataclysm.
Update: as confirmed by the developers, Cataclysm solver is based on DX Compute shaders, not CUDA
The Cataclysm uses a custom FLIP based GPU solver combined with Unreal Engine 4’s GPU Particles with Distance Field Collisions. Cataclysm can simulate up to two million liquid particles within the UE4 engine in real time.
A FLIP (Fluid-Implicit Particle) solver is a hybrid grid and particle technique for simulating fluids. All Information for the fluid simulation is carried on particles, but the solution the the physical simulation of the liquid is carried out on a grid. Once the grid solve is complete, the particles gather back up the information they need from the grid move forward in time to the next frame.
As promised, NVIDIA is opening source code for selected GameWorks modules.
Source code for HairWorks, a complete solution for simulation and rendering of realistic fur and hair, has recently made it to GitHub.
|HairWorks 1.2 Alpha : Release Notes|
- Api consistency and style improvements
- Samples use a native sample framework
- Support for rendering to a cube-map
- Fully customizable serialization (implementations for memory and file system)
- Small bug fixes and improvements
HairWorks source code branch can be accessed at http://github.com/NVIDIAGameWorks/HairWorks.
Please Note that you’ll require an approved GitHub account, as described here.
NVIDIA has just released a new version of the FLEX universal particle solver.
|NVIDIA FLEX SDK 1.0.0: Release Notes|
- Added support for reporting collision shape ids, and trigger volume shapes, see flexGetContacts()
- Optimizations to host code performance
- Fix for potential memory leak in SDF object destruction
- Fix for potentially missed collisions during convex shape CCD
- Fix for incorrect bounds computation during flexSetShapes() (if not specified by user)
- Fix for initial shape translations being incorrect when using a transform with flexExtCreateInstance()
- Move flexExt.h header to the /include folder
FLEX SDK 1.0 can be downloaded at GameWorks Download Center (registration guide).
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.
Recent 1.3 Beta update (availabe through Steam on PC) for Fallout 4, among various bug fixes, adds several new graphics features – HBAO+ ambient occlusion and, suprisingly, physically simulated debris effects from bullet impacts, exclusive to NVIDIA GPUs.
(You can also find some comparison videos on YouTube – Link 1, Link 2)