Archive for the ‘PhysX SDK’ Category
An updated version of the open-source PhysX SDK physics engine was just released on Github.
New features include GPU acceleration support for recently introduced reduced-coordinates articulations and immidiate mode (low level API access) support for the new Temporal Gauss Seidel solver and reduced-coordinates articulations as well.
Full Release Notes for the 4.1 release can be found here.
PhysX SDK 4.1 is available at: github.com/NVIDIAGameWorks/PhysX
As promised, NVIDIA has released new PhysX SDK 4.0 physics engine.
Unlike the change from version 2.8 to 3.0, the upgrade to version 4 does not bring any significant API changes. However, it was decided to mark this release with a major version increment because of two major innovations that were added: The TGS solver and the reduced coordinate articulations.
* Temporal Gauss-Seidel (TGS) solver
TGS solver offers several advantages over default PGS solver – improved convergence, improved handling of high-mass ratios, minimized energy introduced when correcting penetrations and improved joint drive accuracy.
While TGS solver is generally little slover thas default PGS, it can be simulated on both CPU or GPU.
* Reduced coordinate articulations
In comparison to default maximal articulations, this articulation implementation is designed for robotics use-cases. It supports revolute, prismatic, fixed and spherical joints. It was written to favor accurate simulation and produces results that are very close to analytic models of kinematic chains. In addition, it provides inverse dynamics functionality.
* New automatic box prunning (ABP) broad-phase
ABP broad-phase is an revisited implementation of multi-box prunning (introduced in SDK 3.4). It automatically manages world bounds and broad-phase regions, thus offering better out of the box performance for many use cases. It is now enabled as default broad-phase solution.
* Optional torsional friction model to simulate rotational friction when there is just a single point of contact.
* New BVH structure supporting better performance for actors with many shapes.
And many more ! Full Release Notes for the 4.0 release can be found here.
PhysX SDK 4.0 will full source code under BSD license is available at: github.com/NVIDIAGameWorks/PhysX
NVIDIA has revealed a new PhysX SDK 4.0 version of the PhysX engine, which incorporates numerous improvements in simulation stability and accuracy (as hinted previously at GDC 2018).
Update: PhysX SDK 4.0 is available
New features include:
- Temporal Gauss-Seidel Solver (TGS), which makes machinery, characters/ragdolls, and anything else that is jointed or articulated much more robust. TGS dynamically re-computes constraints with each iteration, based on bodies’ relative motion.
- Overall stability has been improved with reduced coordinate articulations and joint improvements.
- Increased scalability via new filtering rules for kinematics and statics.
- New Bounding Volume Hierarchies support fast scene queries for actors with a huge number of shapes.
- Infrastructure can now incorporate Cmake projects.
In addition, both new PhysX SDK 4.0 (starting December 20) and current PhysX SDK 3.4 (starting today) are now available as open-source under 3-Clause BSD license.
(Please note that BSD-3 licensed platforms include Windows, Linux, Mac OS X, iOS and Android, but not Xbox One, PS4 and Switch).
PhysX SDK 3.4 source code as available at github.com/NVIDIAGameWorks/PhysX-3.4
As announced at GDC 2018 talk “Nvidia GameWorks: New Simulation Features” (which you can view at GDC Vault now) PhysX SDK team is planning to shift the development focus from reaching maximum performance to increasing quality of the simulation, to better comprehend use cases such as robotic simulation and VR games.
Common problems, that one can face with current PhysX rigid body solver (and other game oriented physics engines in general) include innacurate simulation of complex jointed objects, erratic interactions between objects with high mass difference and instability of small scale simulations.
Quite an interesting beginning of GDC 2017 – NVIDIA has not only presented their newest flagship GPU, GeForce GTX 1080 Ti, but also announced several additions to the GameWorks libraries.
Let’s take a closer look.
FleX & Flow
NVIDIA FleX, unified particle-based solver, and NVIDIA Flow, an engine for simulation of smoke and fire, now both feature hardware agnostic DX12 implementation !
This is exciting news not only for gamers, but also for 3d party companies, already utilizing FleX in their products, such as Lucid Physics from Ephere.
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.
[Update - March 01 2017]: Final release of PhysX SDK 3.4 is now released on GitHub
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.
NVIDIA FleX is the new GPU accelerated particle-based simulation library. The core idea of FleX is that every object is represented as a system of particles connected by constraints. Such unified representation allows efficient modeling of many different materials and natural interaction between elements of different types, for example, two-way coupling between rigid bodies and fluids.
Update: FLEX SDK 0.8 can now be downloaded through GameWorks Download Center
Interested developers may be pleased to hear that NVIDIA has already completed basic integration of FleX solver into Unreal Engine 4, and it can be freely obtained with one specific UE4 source code branch at GitHub.
Standalone FleX SDK and sample demo executable (as showcased below) are also included in the package.
To get access to the UE4 source code branch with FleX integration few steps are required:
Quite astonishing news are coming from Game Developers Conference 2015 – NVIDIA has just announced that latest PhysX SDK 3.3 is now available for free with full source code for Windows, Linux, OS X and Android. Source code release of APEX Destruction and APEX Clothing modules is also planned.
Update: iOS source now added !
Previously, only binary distrubutions of PhysX SDK were available for free for commercial (Windows PC) and non-commercial (Linux, OS X, Android) use. PhysX engine for consoles if still subject of paid licensing.
This desicion will certanly help to push PhysX’s already wide adoption among developers even further and put an additional stress on competitive solutions.
Full instruction on PhysX SDK source code access can be found here.
Update: Latest source code branch is located here – github.com/NVIDIAGameWorks/PhysX-3.3
Following the PhysX SDK 3.3.2 release, updated APEX SDK 1.3.2 is available for download.
Update March 2015: Bug-fixing APEX SDK 3.3.3 release is available.
Despite the minor version number, APEX 1.3.2 includes numerous additions to Destruction and Particles modules.
|APEX SDK 1.3.2: Release Notes|
APEX Framework 1.3.2
- Added NVTX profiling support for non-release builds. Traces can be captured using Parallel Nsight Analysis Tools. NVTX is supported only for Windows and Android.
- Added ability to change render resource lock behavior or disable locking altogether, to improve performance. The setting is per module. See NxModule::setRenderLockMode and NxApexRenderLockMode.
- Added ability to disable potentially expensive stat collection if it’s not needed. See NxApexSDK::setEnableApexStats.
- Fixed crash if application creates APEX SDK after already connecting to PVD.