Overview
Unity Blast
Blast is a NVIDIA destruction library, which can efficiently calculate the effects of object breaking, fragmentation, fracturing, and real-time physics simulation.
Blast is a NVIDIA Omniverse destruction library. It consists of three layers: the low-level (NvBlast), a high-level “toolkit” wrapper (NvBlastTk), and extensions (prefixed with NvBlastExt). This layered API is designed to allow short ramp-up time for first usage (through the Ext and Tk APIs) while also allowing for customization and optimization by experienced users through the low-level API.
In recent years, NVIDIA has integrated Blast into Omniverse as part of the PhysX physics simulation project, also included within Omniverse are the fluid simulation project Flow and the physics simulation project PhysX.
However, Blast is a C++ project. This makes it highly compatible with C++ projects like Houdini and Unreal Engine, but less so with C# projects like Unity. While Blast has C-style APIs consisting of stateless functions at higher levels, some lower-level methods lack exposed C-style APIs for various reasons.
Although there are many excellent projects available, such as unity-fracture and some forum thread, these projects have not been updated for a long time, and the Blast versions they rely on are somewhat outdated.
Therefore, in this project, I work on porting the Blast method from the latest version of PhysX and Blast(Blast SDK version 5.0.6), including exposing the C-style interface and implementing the C# wrapper function, so that Blast's efficient and excellent methods for simulating breakage and fragmentation can be used in Unity.
Theoretically, this can be used to break any object that could originally be supported by Blast list here as long as it has readable meshes and uvs.
Features
- Complete rewrite and extention of the wrapper scripts and interfaces to support the latest Unity and Blast.
- Some of the original logic has been rewritten and extended to support the acquisition of neighbor relationships and surface cracks with very low overhead.
- Created Blast Pattern fracturing method with configurable params.
- Multi-platform support
- ...
Better Unity Fracture
Better Unity Fracture provides multiple fracturing methods in Unity. Users can use preprocessing or real-time fracturing methods to cut and shatter almost any mesh geometry, along with several interesting configurable effects.
In the sample scene, the objects are fractured by a "BlastPattern" fracturing method during runtime after being hit. After that the special effects will be played and fractured chunks will appear and dissolve in few seconds.
Features
- Real-time, realistic simulation of fracture mechanics
- Rich method support and interface wrapping implementation
- More realistic and configurable special effects and animation system
- High efficiency and optimization
- ...

