Jump to content

shattering windows...but not all at once


Netvudu

Recommended Posts

Hi, I´m trying to destroy the windows on a building (in Houdini, not in real life...yet) and because the cause is an explosion´s shockwave, I´m trying to break them not all at once, but following a direction.

I thought that was a pretty common effect, but I´m not that comfortable with what I´m doing so I figured before finishing the research I would ask in case anyone thinks of a better method.

I´m trying to shatter each window using particles and the pre-triangulated window primitives that get attached to those particles as the pieces of the glass. It´s not the most elegant way of shattering, and I could use any other tool for it, but because there are so many, I think it´s going to work well enough. I can always go with other shattering methods later on if I need more detail...

My main problem was the simulation of particles not being created for all the windows at the same time, but starting when an attribute is transfered from an animated sphere which acts as the shockwave object. Right now I´m using a ForEach SOP, but I´m not loving the lack of interaction I´m getting from it, specially regarding the particles being inside the ForEach.

Of course, I also though of a sort-of-cheesy way of doing it, which would be caching to disk a few windows breaking up, and then copying those animations to the proper places at the right time, but it´s not quite intuitive because I can´t tweak the simulations afterwards.

Any other ideas? I´m sure this has been done plenty of times, even before the ForEach SOP existed...

Link to comment
Share on other sites

you could use an expanding sphere as a bounding object in a group SOP to gradually include points in the group, then sim that group?

Well, creating the group with an attribute transfer or with a bounding object has quite the same effect, right? What is interesting to me is that you would rather use dynamics for all these windows as opposed to my particle method...do you think it will be easier to tweak afterwards?

Edited by Netvudu
Link to comment
Share on other sites

a shockwave is usually generated around an Epicenter..and it generally travels radially outwards..(depends on the media though..)

perhaps you could add an attribute calculating the distance from this Epicenter and use this to trigger the explosion..(theoretically)

Though I tried this today on a shatter effect I was working on and sadly it did not work..I have not tried to troubleshoot it as I have spend nice amount of time on it already :P

The issue I had was the Group POP or even the force POP was not updating the distance of every point from the epicenter..

perhaps some trigonometry and VOP POPs could resolve it..I'll get back to this thread if I get anything on this..

cheers

Link to comment
Share on other sites

particle method is fine especially if you want to disintegrate the glass and the camera isn't that close (which it couldn't be if you wanted to see all the panes smashing out).

Here's a real quick template where I used a subdivide in place of a real fracture setup (where you would fracture your glass). I work with all the particles at once in a single particle simulation using a unique "window_id" integer attribute to release each window fracture randomly.

Also added random blow-out centre locations for each large pane of glass.

shatter_glass_panes.hip

Link to comment
Share on other sites

particle method is fine especially if you want to disintegrate the glass and the camera isn't that close (which it couldn't be if you wanted to see all the panes smashing out).

Here's a real quick template where I used a subdivide in place of a real fracture setup (where you would fracture your glass). I work with all the particles at once in a single particle simulation using a unique "window_id" integer attribute to release each window fracture randomly.

Also added random blow-out centre locations for each large pane of glass.

shatter_glass_panes.hip

Great POP trickery! That was the kind of solution I was after. I could do the primitive driven by particle stuff, but didn´t thought about those nice state POPs driving the simulations.

I will adapt this to my scene with a couple of changes. Thanks.

This being said, this method seems to divide the windows from the start, and then move the particles when one needs it (or randomly as in your case). I could figure rendering problems showing the shattered windows from the start. Obviously this is very easy to fix in post with a simple mask, but is there a "clean" approach to this particles-based shattering that allows to actually break (subidivide/shatter) at different times so that goemetry remains clean until the moment it breaks apart?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...