APEX Destruction
From PhysX Wiki
| APEX Destruction | |
| |
| Latest version(s): | 1.1 |
| Authoring application(s): | PhysXLab |
| Capabilities: | Fracturing, Destruction, Rigid body physics |
| GPU acceleration: | Rigid Body |
| Official page | |
APEX Destruction (APEX D) is an APEX module, that helps developers to create and simulate large numbers of dynamic destructible game objects.
Destruction module is supporting PC + CPU, PC + NVIDIA GPU, Xbox 360 and PS3 platforms.
APEX Destruction 1.0 was released for public as part of APEX 1.0 Beta, and now can be integrated into any game/engine, free of charge.
Contents |
Overview
APEX Destruction module is focused on simulation of destructible objects - from vases and statues to walls and whole buildings, from purely visual to gameplay affecting destruction. APEX D uses artist-defined pre-fractured meshes, supplementary sub-systems to handle things like damage propagation and PhysX SDK driven rigid-body solver to calculate interaction between chunks and fragments.
Destruction functionality in APEX D module is based on several features, like:
- Hierarchical fracturing - all chunks are forming a hierarchical structure, from unfractured mesh to smallest fragments (deepest hierarchy level). Various settings can be applied "per depth" then.
- Support system - if this feature is enabled, pieces (chunks) of the destructible object will be "held" together (forming Chunk Islands) or will remain connected to the static environment, until enough damage is applied (either directly or through collision impact).
In 1.1 version it is possible to enable calculation of Rigid Body physics on GPU, and thus achieve superior performance in case if many rigid body objects are used.
Also, Destruction module is integrated with APEX Particles to simulate dust, smallest debris and similar effects.
Authoring component
Authoring functionality is provided via PhysXLab, a standalone GUI authoring tool. Using PhysXLab, users can take artist-provided meshes, split them into broken fragments and export generated Destructible assets in standart APEX asset (.apx and .apb) file formats. Exported asset will include hierarchy of fractured meshes, collision information and physical material parameters, and support information for each chunk as well.
Two slicing "patterns" are supported:
- Slicing - the mesh is sliced automatically along various axes (using plain or noisy slicing surfaces). Process is recursive, so that each piece obtained by slicing can be sliced again.
- Cut-out - in this case user supplies a fracture map in the form of a bitmap file, with fracture lines drawn on it. The mesh is then fractured along those lines.
In general, several steps must be performed to create Destructible asset:
- Fracturing of initial graphical mesh using choosen pattern.
- Applying materials and textures.
- Setting up support system - support depth, support chunks, etc
- Specifying secondary parameters, like raycast and sweep settings.
PhysXLab also contains simulation playground, so newly created actors can be previewed before exporting.
Several tutorials for APEX Destruction authoring can be viewed here
Runtime component
APEX Destruction module deals with three kinds of objects: Destructible assets, which are destructible template objects that may be generated in the PhysXLab or directly using the fracturing API; Destructible actors, which are instances of Destructible assets; Destructible actor joints - special wrappers for NxJoints which may be used to join an Destructible actor to another Destructible actor, an PhysX Actor, or to the static global reference frame.
As any other APEX modules, APEX D is featurung LOD mechanism to scale the physics computation. This includes:
- Smallest chunk size
- Maximum number of dynamic chunk islands
- Maximum number of GPU rigid bodies
- Lifetime and maximum distance from place of origin that chunks may exist
- Chunk benefit weights: per-chunk, lifetime, and screen area
In addition, callback mechanism is provided to notify the the user when chunks are fractured or destroyed.
To speed up rendering, APEX D module is supporting instancing and tiling (between copies of same asset and similar chunks within one asset).
Current version APEX Destruction module is using PhysX SDK 2.8.4.
Other features:
- Per-actor materials.
- Chunk creation can be amortized over many frames.
- Multiple-collision hulls per chunk.
Version History
| Version | Release date | Description |
| APEX Destruction 1.1 | Feb 15, 2012 | Updated public release. Features GPU acceleration support for Rigid Body simulation, tiling and instancing for faster rendering, amortization of chunks creation and processing. Uses PhysX SDK 2.8.4 |
| APEX Destruction 1.0 | Mar 24, 2011 | First public release. Includes various improvements and bug-fixes, such as more robust LOD feature, increased number of chunks per asset (64k > 4kkk), improved impact damage behaviour. Uses PhysX SDK 2.8.4 |
| APEX Destruction 0.9 | N/A | Initial internal release. Uses PhysX SDK 2.8.3 |
Games and game engine integrations
APEX Destruction module was used in following games:
- Destructible stone slabs, chessboards and pieces of rock. PC version only, GPU PhysX effect.
- GPU PhysX in Alice: Madness Returns - APEX Destruction effects.
- Several breakable objects (floor tiles, colums). GPU Rigid bodies in Scarecrow scenes. Part of GPU PhysX effects for PC version.
- GPU PhysX in Batman: Arkham Asylum - APEX Destruction usage demonstration.
APEX Destruction module is integrated into following engines:
- Unreal Engine 3/Unreal Development Kit (Epic Games)
- Illusion Engine (2K Czech)
Gallery
Other notes
- According to APEX FAQ at NVIDIA website, APEX Destruction 1.2 will feature GPU accelerated rigid bodies.
See also
External links
- NVIDIA APEX - official page.
- APEX Destruction presentation from MIGS 2011
Tutorials
- APEX Destruction and PhysXLab tutorials
- Supplementary files for NVIDIA tutorials(textures, models, etc)
| |||||||||||||||||
