Followed the tutorial here: Blast Destruction — Omniverse Extensions documentation
and attempt to create a blast animation using moving object. But I get inconsistent results, it takes a couple of run before the objects collide. Have attached a demo file. How can I ensure the blast happens on first collision? Please advice , thanks.
Blast.usd (694.5 KB)
Hello @qazs! I will get a developer to take a look at your files. If you could attach a full log file, that would help!
Hi @qazs , I’m on the Blast development team and will be happy to help you get this sorted. I was able to open your file locally and repro the issue. From what I can tell the issue is that the blue ball is animated. Because the animation data is setting the position and the velocity is set to (0, 0, 0), any contacts that we get essentially look like the ball is at rest, so don’t do damage. The damage that does happen comes from the 2 bodies overlapping and physics trying to use force to depenetrate them, which can give the ball some amount of velocity for a frame.
For this to work properly, at least one body needs to be dynamic and driven by simulation. That is why the red ball falling causes damage consistently. Using animation (or making the blue ball kinematic, which is roughly what the animation is doing even though the flag isn’t set) won’t work right.
Instead, you could set the initial velocity on the blue ball and let it simulate naturally. That would give you consistent behavior. I hope this helps, let me know if you have any follow up questions.
Thanks, but it still doesn’t explain why the blast happens at some point of time into the animation, logically speaking it shouldn’t collide at all. I understand if it’s done through proper physics simulation, it works. I was looking at this tutorial (| NVIDIA On-Demand), so how can I achieve this cannon ball effect without animation?
Sorry, the tutorial link did not work for me. I’d like to see the tutorial you were using so I can better assist.
As for your scene - eventually it does damage because the ball IS colliding with the ledge, it just has an initial velocity of 0. Since it is deeply penetrating, physics applies a force to push the bodies apart. Due to timing changing slightly, it is possible to run multiple simulation steps between two rendered frames when the animation is applied. That would allow the forces applied to de-penetrate to resolve, giving the ball a non-zero velocity, allowing damage to happen as contacts are generated. Once the damage starts there are more rigid bodies moving around and colliding. That also impacts simulation time, resulting in more of a chance to have multiple simulation steps, causing more damage. There is a setting in the Blast panel to prevent self damage (pieces breaking off the shelf from damaging the shelf that they came from).
To have a consistent behavior you should set the initial velocity on rigid body of the ball instead of driving its position through animation. If you don’t want the ball to fall due to gravity you could check “Disable Gravity” on its rigid body as well. That should give you a very similar motion on the ball while allowing normal simulation to apply damage. At that point you can play with the mass of the ball and the “Max Contact Impulse” (in the Blast panel) for the ledge. The max contact impulse is effectively how large of a force is can push back with during a collision. The lower the value, the more likely a dynamic object will continue moving through it as pieces break off. You can also play with the “Default Bond Strength” value in the Blast panel. That scales the strength of the bonds between chunks. The weaker the bonds are, the easier they are to break.
Hopefully that helps give you a better picture of what is going on and how to get the result you want. If you still have questions I’m happy to answer them.
Thanks very much, I tried with initial velocity and it works as expected.
Was referring to this tutorial but I get the idea now: In the Blast Zone: Using Omniverse Destruction - Community Stream - YouTube
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.