Magic Destruction Toolkit - NVIDIA Blast Integration

Hi everyone!

I would like to show you a plugin that I am currently developing. Magic Destruction Toolkit fully integrates NVIDIA Blast with Unity.

At the moment, using it you can:

  1. Create destructible assets right inside the engine. There are several fracturing modes at your disposal (clustered, clustered with scaling, uniform and cutout). You can set as many (within reasonable) levels of destruction as you want and flexibly configure each of them: fracturing mode; the number of chunks at a given level; particle systems used for impacts and trails; pool sizes for particle systems. And many more are planned to be added, but more on that later.

Editor Parameters And Fracturing Modes

When you fully set up all the destruction levels, the plugin bakes the asset data and saves a set of prepared meshes in a special format, taking up the minimum amount of space (depending on the complexity of the asset), and when the asset is placed on the scene, a pool of objects is created that are later used in runtime.

I have implemented a debug mode that allows you to view chunks at all destruction levels separately, as well as see the current graph of chunk connectivity (it is built only for the top destruction level and is processed by the Blast automatically).

  1. And of course, destroy created assets in the engine with minimal impact on performance. When placing a destructible family, you can: select the loading priority (all objects are loaded when the game starts); select the simulation space (local or global); determine whether the object will check itself for the presence of anchor chunks.

Destructible Family Parameters

Also, I have implemented a simple algorithm for inflicting impact damage, this is how it looks at the moment, all of this, of course, will be refined.

And now what is planned to be implemented:

  • Blast Stress Solver integration;

  • algorithm for cleaning or deactivating unused chunks;

  • export and import of NvBlast assets;

  • improvement of the built-in asset editor;

  • support for more than two materials on a destructible object;

  • compound colliders for chunks with concave meshes;

  • and many more little things that will improve the experience of using this plugin.

Things that are under research:

  • Integration of the NvBlastExtRT library. In theory, it will allow you to destroy an object right at runtime, without baking;

  • using boolean operations on chunk meshes for more optimal use of scene resources (the maximum number of chunks will be on the scene only when the object is completely destroyed).

That’s all for now, I will be grateful for your comments and suggestions for improvement.

Discord Server

11 Likes

Best, most necessary and important, what need more than other, for realistic destruction:
Blast Stress Solver
I will buy this asset if this be done

Blast Stress Solver is the next thing I will implement after I’m done with GPU RigidBodies from NVIDIA’s Unity PhysX Plugin.

1 Like

Ok, so I already have purchased RayFire for Unity. Is this better? Advantages?
What about platform compatibility?

1 Like

Unfortunately I have never used RayFire, so I cannot compare this two plugins directly. I think one of the obvious advantages is the native integration with GPU RigidBodies. Also there were people who asked me to give an early version of the package to test, as RayFire was inconvenient for them.
In terms of platform compatibility, this plugin should work on all platforms supported by PhysX and Blast. I need to test this to give an accurate answer.
Also, I must say that at the moment the development of the MDTK is paused, as currently I am doing the maintenance of the NVIDIA PhysX Plugin and planning to finish it by the end of April.

1 Like

If you release, how much will you charge?

1 Like

It’s hard to say yet, but I think it will be about $70-80.

1 Like

Would it make sense to provide runtime fragmentation of an object based on a seed? That way a seed could be passed over the network for identical fragmentation events decided upon at runtime.

I think yes, that may make sense, but in my opinion it would be much more reliable to pass over the network some kind of intermediate data such as voronoi sites (but obviously this will not be the most optimal way).

So… Instead of a development update, I’ll post this video. It features me encountering some… physics phenomena during bug fixing.

7 Likes

aaaah, yes… debugging physics is so… INFURIATING :smile:

1 Like

This opens up a lot of fun ideas :smile:
Looking forward to the release.

Hi! Recently I was asked a question about the release date of the plugin on our Discord server. So I can say that the approximate public beta release date is the Q1 2022.

1 Like

Force earn physics on GPU? This is the dream of many people!
However, it will not be easy to beat the Rayfire in terms of convenience, flexibility and number of tools. I use it myself and this millet is great. But the calculations on the central processor(

Well, I will try to fulfill these dreams!

Time will show. However my goal is not to beat Rayfire in any way, but rather to provide developers with a worthy alternative :wink:

I am a little curious…what is the main difference between this and rayfire? Is it more performant?

Price too maybe :slight_smile:

Unfortunately, I still can’t say exactly how this two plugins differ, since I have never used Rayfire and have not yet fully decided on the set of features that will be present on the release. But I can say that this is becoming quite a frequently asked question and soon I will just write a list of implemented features so that users can determine the differences themselves and choose the plugin that suits them.

In order to find out, we need to conduct tests on the same meshes and compare the performance head-on, someday someone will do it… I think it will definitely be more performant (at least on Nvidia graphics cards) when I integrate PhysX Plugin support.

Yeah :wink:

Thanks for the info mate. I will remember to look into your asset when it arrives.

2 Likes

What’s the status on this?

3 Likes