Notifications
Clear all

[Closed] radial shatter

Perhaps this is to difficult for a beginner in maxscript, but I simply can’t let go of the idea.

I wanted to simulate the breaking of glass after seeing some slowmo movies of object breaking through glass. I noticed that the glass breaks in a radial pattern, similar like this.

So basically what i wanted to do is break up an editable poly in a similar fashion, so you have your break ready for animation (would be great to have a generic tool with wich you could point and click your point of impact, adjust size et cetera).

So a rudimentary sketch of this looks (i think) like this: this would be an ultra low iteration of what I would like to aim at. So eventually it all would be noisier and more detailed.

http://forums.cgsociety.org/attachment.php?attachmentid=95317&stc=1

So I imagined you would first need a point on a poly to start from, and just start cutting random radials. Then get all of their ending vertices and create edges between them.

And here is where my mind seems to stop, since this method seems limited in making it efficient and generic. Also I realized that the cuts need to be through and through (as in the opposite poly needs to be cut in the same fashion), and the broken pieces need to be made seperate (as in they need side poly’s added).

So that’s for all the thinking I have done, what would be a good point to start at. Because I somehow can’t help feeling a bit lost and undereducated in every stab I take a this.

Thanks in advance.

P.S.: I’m not asking for a full step by step guide, rather some pointers that could help me grasping taking on this “project” I have.

1 Reply

here is my way, and there are better ways that i dont know…
using slice mod or polyOps u can slice!
slice has a direction and a position which is a RAY,
its easy to get the collision point (do it with reeactor or other ways and functions in maxscript)
i know 2 ways in order to get it radial:
(in XY plane)
as x goes from 0 to 1 and 1 to 0,
the y goes from 1 to -1
(needs 2 lines of code)
or place it in a sin or cos functions and make the slice plane rotate!(assign random values to make it random!)
(needs one line of code)
at the end u place the position in circular manner to get radial shatters
acos(theta)
and
a
sin(theta)
where a is 0 at the first itteration and then incremented by a value each time…