My question is related in particular to achieving the effects of collision in game engine, how is this done?

I have searched a bit, read from the internet and went through a few tutorials, and saw that one way to create one of the effects, explosion, or something breaking is to create the model in pieces, and apply force (in a game engine such as Unity 3D) to make the pieces fly off. It seems to be a solution, but it doesn't address the problem of items that are vaporized in a big explosion, with so many pieces. How is this done? Basic methods and tricks etc would be helpful.

Secondly, the problem of things bending and getting damaged on impact, such as a car's front end destroyed when it hits a wall? How is this done? One thing that comes into my mind is to create each component of a car in a different state as an animation in 3Ds Max or Maya, and then in the engine, according to the collision, switch the model state in the time bar. Is this how it is done?

Finally, what about materials, such as net of a basketball net, or a soccer goal net for example? Effects of ball hitting it can be calculated and applied in a script, but how to make the net bend and stretch with it? Is it done through models or materials? Also what about a flag fluttering in the wind?

My questions are specific to game engines, particularly Unity3D. Some good links on the subject would also be helpful.


2 Answers 2


I've never used Unity so I can't tell you specifically about that, but I can give you some keywords to look for. Explosions and similar effects are done with particle systems. Particles include smoke and fire done with screen-facing quads, but small meshes that look like bits of twisted metal or shards of glass, etc. can be treated as particles as well, since there can be a lot of them and they usually disappear after a short time.

Damaging an object is usually done by swapping out different pieces of geometry, like you mentioned. There's no universal term for this, although they're often called breakables. Usually these different states are created by an artist ahead of time. There are some tools, such as Havok Destruction, that do real-time, dynamic shattering or deformation in the engine. This kind of thing is expensive in performance and tricky to make work well, though. It's an area of active research at present.

Bending and stretching nets, flags, etc. are the realm of cloth simulation. Many engines include this nowadays. Internally, it's done by making a finely subdivided mesh and applying a physics simulation that treats all the vertices as being attached to their neighbors by little springs.


I want to update this considering the new shader stages recently added. Someone more familiar can probably be more thorough, but:

such as a car's front end destroyed when it hits a wall?

The new stages allow you to more-cheaply enhance low-poly models. You could generate an entire vehicle from a single cube's-worth of vertices (8). Given a relatively detailed mesh of a vehicle, add a "damage map" texture. When you collide with something, write the collision to the texture. While rendering, use the calculated values as a displacement map, warping the mesh on demand, tessellating where needed. I'm willing to bet that, by now, even the collision calculations could be "rendered" entirely on the GPU.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .