Jump to content

Volume smoke from Voronoi break


Jim M

Recommended Posts

I have a voronoi fracture sim, and am am trying to use it as a volume smoke source/pyro source.

Cant get it to work at all, I can see that the smoke nodes are looking for an object, and ideally I want to use just the inside_group or whatever its called. I imagine I might have to do some extrusion on just that group to give it some volume, but I just cant get it to even emit from the individual pieces. I imagine saving out the obj sequence and loading back in might work, but i want it to all sim at the same time so I can adjust both things.

When I use a smoke container then select the object to emit smoke from, it just errors and says NO. If I use pyro smoke it sets it up but nothing happens.

Any ideas?

J

Link to comment
Share on other sites

Perhaps this gives you a starting point.

Thankyou, Looks good. I didnt even know there was a Voronoi SOP. I am using Voronoi configure DOP into an RB solver, I think this is where the problem lies as it looks like the smoke volume tools are looking for something which doesnt dynamically change face counts etc. Bare in mind I obviously dont know what I am on about...

I will spend another day trying to make it work (I am slow).

Cheers,

J

Link to comment
Share on other sites

I think it is just a matter of grouping properly. Then changing face counts doesn't matter and you will always have the correct surface to emit from.

Also bear in mind that the shelf tools only help you to set up common situations. It doesn't mean you can't do this that or the other, just that some extra stuff is involved. I'm sure you'll get the hang of it eventually. I think we've all been frustrated when we started with H.

Link to comment
Share on other sites

I think it is just a matter of grouping properly. Then changing face counts doesn't matter and you will always have the correct surface to emit from.

Also bear in mind that the shelf tools only help you to set up common situations. It doesn't mean you can't do this that or the other, just that some extra stuff is involved. I'm sure you'll get the hang of it eventually. I think we've all been frustrated when we started with H.

Thanks dude. I am spending most of my time in the network looking at things and then considering what I want, then trying to consider what the steps are I need to take then trying to make it all work. It is frustrating when you spend 5 hours on something and the 10 different attempts all fail. I will keep slogging away :)

Oh and the groups are changing all the time at fracture time. I am just a bit confused with what gets sent to what context and when, as the inner and outer surfaces dont show up in dops only in sops.

Turns out I am getting ahead of myself. Its the fact that its an RBD object. With a simple box bouncing, i get "OperationFailed: The attempted operation failed.

Cannot initialize fluid from simulated object. Use Source From with a one frame activation instead."

No idea what it means.

[edit] ok that warning made me connect everything up (shelf tools) in a different order, i.e add smoke object before turning into RBD. I am getting there.

[Edit] Woooooooo I solved it. Such a simple thing has made me so happy :)

Edited by Jim M
Link to comment
Share on other sites

I would emit smoke from the pieces separately, after simulating the rbd.

But since I have nothing to do and like a good challenge I tried to emit smoke from the interior surface of a breaking object during sim.

There is a couple of problems with it:

-I can access the interior group once I have exported it out to SOPs. I can't figure out where in the dops network it is actually created (so that I could get it from there instead)

-I have problems emitting at the correct frame. The interior group obviously doesn't exist until it is created during breaking. I must be doing something wrong in setting the creation frame or something. Perhaps it could be automated?

If an expert want to look at it, file attached. Problem nodes in red.

post-4013-128210207744_thumb.jpg

mysterious.hipnc

Edited by Macha
Link to comment
Share on other sites

I would emit smoke from the pieces separately, after simulating the rbd.

But since I have nothing to do and like a good challenge I tried to emit smoke from the interior surface of a breaking object during sim.

There is a couple of problems with it:

-I can access the interior group once I have exported it out to SOPs. I can't figure out where in the dops network it is actually created (so that I could get it from there instead)

-I have problems emitting at the correct frame. The interior group obviously doesn't exist until it is created during breaking. I must be doing something wrong in setting the creation frame or something. Perhaps it could be automated?

If an expert want to look at it, file attached. Problem nodes in red.

I have it working well.

Link to comment
Share on other sites

I would emit smoke from the pieces separately, after simulating the rbd.

But since I have nothing to do and like a good challenge I tried to emit smoke from the interior surface of a breaking object during sim.

There is a couple of problems with it:

-I can access the interior group once I have exported it out to SOPs. I can't figure out where in the dops network it is actually created (so that I could get it from there instead)

-I have problems emitting at the correct frame. The interior group obviously doesn't exist until it is created during breaking. I must be doing something wrong in setting the creation frame or something. Perhaps it could be automated?

If an expert want to look at it, file attached. Problem nodes in red.

I have it working well. Or should I say working on create smoke object, I havent done the volume as constant source yet.

I think your example is more complicated because you can set simulation frames on several dop nodes.

I see in your fracturing object, the box you have gone out of the merge to get your volumes, I am not sure if it makes a difference but the dopimport2 makes sense in my situation. In fact you arent emitting from volumes are you? I think you need a poly extrude with caps and an iso-ofset before the out-null.??

post-5130-128210487497_thumb.jpg

Edited by Jim M
Link to comment
Share on other sites

Yes I'm a little confused by this. You can emit from points only, but it seems that's not quite the case for a surface only. OK, no problem, I think I can just scatter points then.

And sorry for those quadrillion lowresupres nodes I left in there...

Edited by Macha
Link to comment
Share on other sites

Does this work now? To be honest I can't properly test it because I am on a P4 (Hello 2001!) right now.

The simulation frame prob is also solved.

The only thing that remains, for the sake of elegance, is how to grab the inside group from within DOPs.

Ain't it fun this Houdini thing!

ok.hipnc

post-4013-128210824895_thumb.jpg

Edited by Macha
Link to comment
Share on other sites

Yeah it took me a moment to figure out what I could delete :)

I am currenlty useing a 'smoke volume container', and a 'smoke object' and am converting the 'inside' groups in sops to a volume by poly extruding them and then isosurfacing to create the volume that the smoke object requires. It doesnt worrk with flat polys or points as far as i know, as its looking for a volume. Pyro might be different.

See attached jpg, ignore the color nodes, they were just to help me see whats what.

Link to comment
Share on other sites

scene with working volume smoke during voronoi fracture sim.

+ will test your scene now, thanks for the input, greatly appreciated.

YOur scen looks like its working great, I simmed 100 frames. It looks like you are emitting from points on the surface, I will have a closer look.

Marvellous !

Smoke from RBD28.hip

Edited by Jim M
Link to comment
Share on other sites

I didnt even know there was a Voronoi SOP.

Yes, the dynamic fracturing solver just uses the VoronoiFracture SOP, along with the (imaginatively named) VoronoiFracturePoints SOP to do fracturing during a dynamic simulation. So you can also pre-fracture in SOPs and use the pre-H11 RBD Fractured Object or RBD Glue Object approaches.

I put an example file here that, among other things, shows how to use those SOPs to preview dynamic fractures.

I would emit smoke from the pieces separately, after simulating the rbd.

But since I have nothing to do and like a good challenge I tried to emit smoke from the interior surface of a breaking object during sim.

I agree that getting the fracture sim looking the way you want it, then simulating the smoke, is really the way to go. But either way some of the same principles apply. You need a way to separate out all the interior primitives, no matter how many times an object has re-fractured. As you've noticed, the inside/outside groups do not stay constant through re-fracturing. And it can also be helpful to have an attribute that records how recently the fracture occurred, so you only emit smoke (or particles or whatever) within a certain timeframe after a fracture.

For the first part, the easiest way is to create an "exterior" attribute on the primitives before fracturing, set to 1, defaulted to 0, then after DOPimporting the fractured geometry delete all primitives with exterior value of 1. (Maybe the "Make Breakable" tool should do this by default?)

For keeping track of fracture time on a per-primitive basis, enable "Stamp Interior Primitives with Creation Time" on the Fracture Tab of the Rigid Body Solver. That puts a "creationtime" attribute on all interior primitives that records their fracture time. (So really, you could probably cheat and delete all primitives with a creationtime attribute of 0 to get rid of the exterior primitives).

Then promote that attribute to points and create a point attribute called "emit" set to:

fit($T, $CREATIONTIME, $CREATIONTIME + 1, 1, 0)

where the "+ 1" in the expression above controls how long (in seconds) you want to emit for.

I have it working well. Or should I say working on create smoke object, I havent done the volume as constant source yet.

I think your example is more complicated because you can set simulation frames on several dop nodes.

I see in your fracturing object, the box you have gone out of the merge to get your volumes, I am not sure if it makes a difference but the dopimport2 makes sense in my situation. In fact you arent emitting from volumes are you? I think you need a poly extrude with caps and an iso-ofset before the out-null.??

You can use the SDF creation mode of "Minimum" with a small surface offset, which creates a little "shell" around poly faces. It's like a volumetric extrude.

While I agree you should probably sim these separately, see the attached file for an example of doing them at the same time. I'm applying those actions described above to prepare the interior primitives, then fetching them back into DOPs as a StaticObject and using ApplySource to cause them to emit, multiplying by the "emit" point attribute to control the emit rate per-primitive.

The fetched geo will be one timestep behind the current sim, but it doesn't really matter in this case (turn on "Display Geometry") on interiors_obj to see the trailing geo.

If you turn on "Show collision Guide Geometry" to see the volumetric shells around the interior faces, you'll notice that once all the pieces separate the SDF doesn't look so good anymore. It doesn't really matter in this case, but if I were doing this in a situation where that mattered, I might use a ForEach SOP to build the volumes from the individual interior pieces, VolumeMerge the result together, and use that as a custom source. Let me know if you want to know what that looks like.

smoke_from_interiors.hipnc

Edited by johner
  • Like 1
Link to comment
Share on other sites

Wow.

I will have to read that a few times, but I will go through it as a learning project. I did realise after thinking about this that I would need to check for refractures and so forth. Well thats less time in the pub then :)

I am proud to have succeeded in half getting what I wanted, and happy that I figured out how to make my little scene work.

http://www.youtube.com/watch?v=tgx-5hn9OTc

Strangly enough I understand the fit function (woohoo)!

Thanks again guys.

J

+ thanks for the examples, again very useful for a beginner like me!

Edited by Jim M
Link to comment
Share on other sites

Wow, Johner, where did you learn all these tricks! Wait, you invented them, you're a genius! That's a nice, clean, purposeful file.

And about the other file, I like that connect button you did there. I learned something completely new there, didn't know we can do that.

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...