Archive for the ‘Research’ tag
About a month ago, NVIDIA has revealed a new unified GPU accelerated physics framework – NVIDIA FLEX – at “The Way It’s Meant To Be Played” press event in Montreal.
Today, Miles Macklin, physics programmer at NVIDIA and lead-developer of the FLEX system, has joined us to share first-hand details about this exciting technology.
PhysXInfo.com: So what is the NVIDIA FLEX exactly ? What are the main features of FLEX ?
Miles Macklin: FLEX is a multi-physics solver for visual effects.
It grew out of the work I did on Position Based Fluids, which was later extended to support two-way coupling between liquids and different object types such as clothing and rigid bodies.
The feature set is largely inspired by tools like Maya’s nCloth and Softimage’s Lagoa. The goal is to bring the capabilities of these off-line applications to real-time games.
Our readers may remember Position Based Fluids – new and promising fluid simulation approach, which has got quite a bit of attention few months ago.
Miles Macklin, one of the authors of the PB Fluids method, has presented latest improvements to the algorithm at SIGGRAPH 2013 conference – namely, two-way interaction with rigid bodies and cloth objects, as showcased in the videos below.
* Two-Way Coupling with Rigid Bodies
An interesting “proof-of concept” demo was revealed today by Pierre Terdiman, senior software engineer in NVIDIA.
It is showcasing new CPU based algorithm, that will allow more effecient and stable simulation of large stacks.
Currently, PhysX SDK can utilize a feature (more like a “crude hack”) called “Adaptive Force” in order to improve stability of the stacks, but it also introduces some side-effects in certain cases.
As you can see on the picture above, 50-box-wide stack, simulated with the new algorithm, remains fully stable, while similar stacks, handled by any other current physics engine (PhysX SDKs/Bullet) collapse shortly.
Demo is also available for public download.
We hope that this new stacking solution will be included in PhysX SDK in the near future.
Position Based Fluids – this fluid simulation technology has indeed got some attention lately, and now, new “Position Based Fluids” paper by Miles Macklin (NVIDIA) and Matthias Müller-Fischer (NVIDIA) can give one a proper insight on the algorithm.
In fluid simulation, enforcing incompressibility is crucial for realism; it is also computationally expensive. Recent work has improved efficiency, but still requires time-steps that are impractical for real-time applications.
In this work we present an iterative density solver integrated into the Position Based Dynamics framework (PBD). By formulating and solving a set of positional constraints that enforce constant density, our method allows similar incompressibility and convergence to modern smoothed particle hydrodynamic (SPH) solvers, but inherits the stability of the geometric, position based dynamics method, allowing large time steps suitable for real-time applications.
We incorporate an artificial pressure term that improves particle distribution, creates surface tension, and lowers the neighborhood requirements of traditional SPH. Finally, we address the issue of energy loss by applying vorticity confinement as a velocity post process.
Latest iteration of real-time fracturing and destruction technology, showcased at GDC 2013, is now explained in a new “Real Time Dynamic Fracture with Volumetric Approximate Convex Decompositions” paper by Matthias Müller-Fischer (NVIDIA), Nuttapong Chentanez (NVIDIA) and Tae-Yong Kim (NVIDIA).
We propose a new fast, robust and controllable method to simulate the dynamic destruction of large and complex objects in real time. The common method for fracture simulation in computer games is to pre-fracture models and replace objects by their pre-computed parts at run-time. This popular method is computationally cheap but has the disadvantages that the fracture pattern does not align with the impact location and that the number of hierarchical fracture levels is fixed.
Our method allows dynamic fracturing of large objects into an unlimited number of pieces fast enough to be used in computer games. We represent visual meshes by volumetric approximate convex decompositions (VACD) and apply user-defined fracture patterns dependent on the impact location.
The method supports partial fracturing meaning that fracture patterns can be applied locally at multiple locations of an object. We propose new methods for computing a VACD, for approximate convex hull construction and for detecting islands in the convex decomposition after partial destruction in order to determine support structures.
We must note that this research is specifically targeted to be implemented in upcoming versions of APEX Destruction module.
Many of you may have already seen an impressive real-time destruction and fluid simulation demo from GDC 2013.
Update: Position Based Fluids explained
We won’t talk about fracturing technology today, instead, let’s focus on the new fluid simulation algorithm, presented in the demo – it is known as Position Based Fluids.
Position Based Fluids is a way of simulating liquids using Position Based Dynamics (PBD), the same framework that is utilized for cloth and deformables simulation in PhysX SDK.
Because PBD uses an iterative solver, it can maintain incompressibility more efficiently than traditional SPH fluid solvers. It also has an artificial pressure term which improves particle distribution and creates nice surface tension-like effects (note the filaments in the splashes). Finally, vorticity confinement is used to allow the user to inject energy back to the fluid.
More details on this a new technique will be available later on, in a SIGGRAPH 2013 paper “Position-Based Fluids” by Miles Macklin and Matthias Mueller-Fischer, and we also expect it to be included in future versions of PhysX SDK or APEX modules.
Update: Real Time Dynamic Fracture explained.
Update #2: Introduction to Position Based Fluids.
This demo, showcased at GDC 2013, was used to demonstrate several new features, which will be included in future versions of PhysX SDK and APEX – rigid body simulation with real-time fracturing, improved SPH fluid solver and interaction between the two.
Quite interesting technical demo video was revealed today by Matthias Müller-Fischer, PhysX SDK Research Lead in NVIDIA.
Update: Real Time Dynamic Fracture explained.
It is showcasing a further evolution of a dynamic real-time fracturing and GPU accelerated rigid body simulation algorithm, firstly presented at GDC 2012. As you may see, improved method works perfectly with complex arbitrary meshes, not just basic shapes.
A paper describing this technology, called “Real Time Dynamic Fracture with Volumetric Approximate Convex Decompositions”, will be available for public download later on, once it will be approved for SIGGRAPH.
“Position-based Methods for the Simulation of Solid Objects in Computer Graphics” – recent paper by Matthias Müller-Fischer, PhysX SDK Research Lead in NVIDIA, and others.
Paper provides in-depth overview of special class of simulation methods, namely position-based approaches, for solid objects, such as rigid bodies, cloth and softbodies.
The dynamic simulation of solids has a long history in computer graphics. The classical methods in this field are based on the use of forces or impulses to simulate joints between rigid bodies as well as the stretching, shearing and bending stiffness of deformable objects. In the last years the class of position-based methods has become popular in the graphics community. These kinds of methods are fast, unconditionally stable and controllable which make them well-suited for the use in interactive environments.
Position-based methods are not as accurate as force based methods in general but they provide visual plausibility. Therefore, the main application areas of these approaches are virtual reality, computer games and special effects in movies.
This state of the art report covers the large variety of position-based methods that were developed in the field of deformable solids. We will introduce the concept of position-based dynamics, present dynamic simulation based on shape matching and discuss data-driven approaches. Furthermore, we will present several applications for these methods.
Some of the described techniques were used in PhysX SDK (as well as other physics engines) for a long time, some have been implemented only recently, other are yet ander active research.
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.