Jump to content
aghourab

High Resolution Explosion

Recommended Posts

pretty fantastic solution by bunker. its like an aggregation system based in fluids, which makes a lot of sense for that kind of effect

Share this post


Link to post
Share on other sites

pretty fantastic solution by bunker. its like an aggregation system based in fluids, which makes a lot of sense for that kind of effect

Agreed. It really does the trick.

Sidefx should produce example files like this demonstrating the real capabilities of the pyrotools and that sophisticated, deeper control for volumes you get only in Houdini. All in all, DOPs remaing extremely blurry area when it goes beyond the "pick a sphere and click pyro fx from the shelf". Various data, their solving order etc. are difficult to perceive. Thus files like Bunker's -not too large but not too simple- would be most welcome.

Share this post


Link to post
Share on other sites

Wow, this is turning into a watercooling thread :lol:

Anyway, this is my setup for adding some details to an explosion (or to some volcano smoke):

volcano_001.zip

Quite simple, as Peter explained. Just think about hot ashes in volcano smoke, with cold air around.

Those hot ashes makes the air expand (positive divergence).

That gives you the basic expansion and rolling motion, that you can break up with vorticles.

let me know if you have any question.

have fun :)

Nice stuff! Thanks for sharing :)

Share this post


Link to post
Share on other sites

Thanks Peter for the explanation, I will study better how the vorticles works now..

In the bunker's file example there isa a gas recycle vorticles, but in reality inside it's entirely replaced with a custom sop solver to generate points with attributes (the vorticles).

I tried to put the sop solver outside the gas vorticle recycle and in fact it works.

can I ask why bunker started from the gas recycle vorticles?

The points are generated in the same fashion as the points in the other sop solver to generate the divergence field.

Share this post


Link to post
Share on other sites

Simple, the shelf tools gave me what I needed in an instant: a basic vorticles setup

since I use a resizeable smoke sim, I updated the vorticles recycling, hence the quick hack ( to get a prototype working quickly )

Since then, I've cleaned the file and solver too. It's much faster without the usual sink,pump,fuel,heat,burn,collisions... in the default smoke solver, and can handle much larger sims too.

Thanks Peter for the explanation, I will study better how the vorticles works now..

In the bunker's file example there isa a gas recycle vorticles, but in reality inside it's entirely replaced with a custom sop solver to generate points with attributes (the vorticles).

I tried to put the sop solver outside the gas vorticle recycle and in fact it works.

can I ask why bunker started from the gas recycle vorticles?

The points are generated in the same fashion as the points in the other sop solver to generate the divergence field.

Edited by bunker

Share this post


Link to post
Share on other sites

I just came to think, what sort of a force data should be attached to vorticles or what ever points controlling the field flow, if one wanted to make small vortexes or tornados scattered on to the surface of an object ? Wouldn't local vector curl associated to every point cause smoke to start circling around them ?

edit: assuming that every tornado rotates around an axel generated from local surface normal.

edit2: Well not so surprisingly it seems to happen by creating a small point tornado around every point, calculating their velocity and compositing that with gas calculate to velocity field.

Edited by Hazoc

Share this post


Link to post
Share on other sites

Thanks for the example!

I tryied to use the divergence many times but with no succes. I can´t see any diference in the simulation when changing the values in the gas calculate. Is posible to visualize the pdiv field or the divergence itself to have a better idea off whats going on? They look completely flat, maybe the values are very subtle or very big?

Share this post


Link to post
Share on other sites

@Hazoc:

you can use the gradient of the density to get the normals of the smoke with a "gas Analysis"

IMO, no need to do complex and slow calulations here: buyancy and the difference of temperature

between the core (hot) and the outside (cold) of the smoke will give you a rolling motion already.

@Putoparri:

you can display the divergence: in the "visualization" tab of the "smoke" object, just select "Divergence"

you should be able to view pdiv in green ( by default in the file I gave ) the controls are in "scalarfieldvisualization1"

to control the divergence, simply change "source premult" in "gascalculate1" - a value of "50" is here already

Share this post


Link to post
Share on other sites

Thanks for answering Bunker.

That´s what I have allready tryied, the problem is that both appear to be empty (constant in all the field). Also tryied to change the value in source premult in gascalculate1 but nothing changed in the simulation. :huh:

I get some errors on loading the file (allthought I think they don´t really matter) so maybe that can be the problem, which houdini version are you using? I´m using 11.0.469.

In a basic smoke from object setup, there is always some divergence? I thought there isn´t because I can really see anything except constant field when trying to visualize it, either like smoke visualization or a plane. So I used a copy density to density with a value off 1.2 to get a expansion effect but your solution seems to be much better.

Thanks!

Share this post


Link to post
Share on other sites

@Hazoc:

you can use the gradient of the density to get the normals of the smoke with a "gas Analysis"

IMO, no need to do complex and slow calulations here: buyancy and the difference of temperature

between the core (hot) and the outside (cold) of the smoke will give you a rolling motion already.

We're probably talking about different things here:) What I mean is to really have small tornados/vortex forces scattered over the surface of an object. They would probably have negative divergence or pump so they could attract nearby smoke. They also need to form a local twisting motion in velocity field and this is the part i'm not yet sure about how to achieve best.

This is what I'm talking about:

multiple_vortexes.jpg

Of course pretty much unrelated to the topic of explosions and heavy smoke:D

Edited by Hazoc

Share this post


Link to post
Share on other sites

Wow, this is turning into a watercooling thread :lol:

Anyway, this is my setup for adding some details to an explosion (or to some volcano smoke):

volcano_001.zip

Quite simple, as Peter explained. Just think about hot ashes in volcano smoke, with cold air around.

Those hot ashes makes the air expand (positive divergence).

That gives you the basic expansion and rolling motion, that you can break up with vorticles.

let me know if you have any question.

have fun :)

Thanks for sharing,

This may help a huge problem that i have it with making a "rolling clouds", so, i will try it now!

In my attempt to archive my goal( rolling clouds), i watch every tutorial, post, and thread!

So one thing that i discovered it is if you go to CVEX and using sample volume form file, even if your iso didn't have high level of voxels (beyond 200X200X200) you can add a lot of more detail to your sim...

this technic it's explain in Houdini Fractal Tutorial at CMIVFX ...

http://www.cmivfx.com/tutorials/view/280/Houdini+Fractals

But instead using i3d with it's more expensive to generate, i play with my upres Volume (with was saved to disc) using Volume Sample For File and get this results...

I still need to do a trick like pyro shader does with rest position (2 rest interpolated) to control how much my noise "stick" on volume....

The good news is : Render Fast! much more than using a Billowy Smoke Noise Shader!

the downside is : You cannot use PBR or GI since it's a procedural geometry like fur... it will cause your render to death!

so, is not bad at all, since it's too expensive anyway.

Note:: this is a simple billowy smoke from shelf with a pump object, with upres resolution at 115 grid voxels.

And the render was made with raytrace engine, with 3x3 pixels sampling only, and volume sampling set to 1(very low), and took less than 40 sec per frame in my lap.

And still have a detail!

I forgot to mention that it's solve my problems with weird artifacts caused by negative values too...

Sorry for bad english! :rolleyes:

And Cheers!

cvex_upres2.mov

Edited by exu

Share this post


Link to post
Share on other sites

Completed NCCA group project attached... Bunker, youre tips were a life saver though I have to embarrissingly admit I did not have time to fully implement them in the uni project due to time constraints, so Im afraid what has been posted will not do your help justice. That said, as I would like this to be a showreel piece I am continuing work on it.

Also, pyro shader quite difficult to get to grips with. I seem to get loads more detail in viewport than I do at render time! I spent a long time fiddling with it, but could not seem to get the correct range of colors which I could then comp correctly. I suspect the problem may be the to do with the amount of heat in the simulation and the density.

Anyway, here is link to group project. http://vimeo.com/20677105

Share this post


Link to post
Share on other sites

Great file.. I really enjoy the multisolver setup! Great stuff.

It might be an obvious question, but it looks really great in the viewport with the three point lights, but how would you consider rendering it out?

Do I need to use ray traced shadows? if im using depth maps, I can only get a solid color as a final render.

What is your preferred render setting for this?

Cheers!

Edited by viezel

Share this post


Link to post
Share on other sites

this is a great setup thank you. I having an issue hooking up a pyro solver instead of the smoke solver. the multi-solver node doesnt seem to like the pyro solver, or im not understanding the data types it excepts.. I may also not be understanding the internals of both solvers. any input would be great.

thanks

Share this post


Link to post
Share on other sites

Peter and Bunker, thanks for sharing! This is great setup!

Edited by almatea

Share this post


Link to post
Share on other sites

I want to see what an explosion can be done in Houdini. Are there examples of such works, or excerpts from a feature film or commercial? I want to know what to strive for. :rolleyes:

Share this post


Link to post
Share on other sites

There is a mistake in recyclevorticles sopsolver, vopsop: must be v_age instead age import attribute.

So, with "age" we have a undeterminism in this setup : )

Edited by almatea

Share this post


Link to post
Share on other sites

I have some questions to Bunker about his setup.. but first...

A _HUGE_ thank you.. This file, by far has taught me more about gas-solvers and multisolvers than any other tutorial or masterclass hands down.

Now the question:

In the create_divergence_points node, we generate some particles and merge the result with basically the previous scattered particles correct? there by we are aggregating the particles each frame.

I am unclear as to how data is handled in this loop. Here is my current understand, please correct me if I am wrong:

time 0: some density is advected, divergence partiles are created based on the current density. Geometry data now exists in DOPS.

time 1: advection occurs with previous divergence data. new divergence particles are created with current density, and merged in with the previous divergence particles (contained in the geometry data).

time 2: advection occurs with previous divergence data.. etc

I also would like to know if in fact we are aggregating these particles with no "limit".. does this not mean that for really large simulations the amount of memory used could blow up?

A few random ideas that may totally be wrong:

1. could be hackey but would it work if we just put a animated parameter that would essentially stop the merge after a certain number of frames has elapsed?

2. or.. could it be possible to read in the previously calculated density, add it to the current density using volumemix, then scatter points? In other words, we are aggregating density instead of geometry.

How would one actually read the previously calculated density? Dopimport seems to only read in data at the current time.

Thanks again!

Edited by anupamd

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×