I’m doing more research on using the PyroFX tools both for a potential project and for my ‘House Meteor’ project. These require quite a lot more sophisticated simulation setups than gas flames as discussed in Pilot lights.
After a few really basic test setups, I ended up creating a very simple structure within which the explosion is to take place. The following animation shows the first results from this setup.
This basic structure allows for testing interactions between the pyro system and a building or vehicle or something like that. This render comes from a very basic setup where the structure is created from a bunch of simple boxes that have been turned into ‘static’ objects within the DOP network that performs the pyro simulation.
The pyro system itself has a single fuel source (a simple sphere). The amount of fuel being generated by the source is animated to start really high at first and then rapidly drop off to zero. The idea is that there is a limited amount of fuel which explodes.
In order to give the ‘explosion’ an initial expansion velocity I added a velocity attribute to the sphere which is animated to provide a high velocity at the start of the animation and then drop of to a very low value (this animation is very similar to the fuel amount). Based on the results so far it looks like the system needs to be stimulated a bit more to start of more violent than it does now. At the same time the fairly slow start of the animation does make it easy to really see what’s happening when the explosion interacts with the structure. The following animation shows the explosion as visualized in the viewport using: velocity and temperature. This nicely shows how the initial expansion and temperature of the gasses determine the flow of the explosion (and its speed).
For the renders shown above only the low resolution version of the simulation is used. One of the nice features of the PyroFX tools in Houdini is that you can simulate a low res version that determines all of the basic behavior and look of the results, while being fairly light weight. This low resolution can then be fed into a high resolution simulation that ‘only’ adds detail, but keeps the global behavior and shape of the low resolution version. This two-step approach adds a lot of efficiency to the process of coming up with the right look of the simulation.
In order to add some depth and texture to the explosion the scene currently has two lights that generate ‘deep shadows’. These shadows add a lot of the look of the renders and really shows of the power of deep shadows.
The shader used for this render is the default pyro shader that comes with Houdini. I did tweak some of the smoke parameters but nothing fancy so far. The shader itself can actually add another level of detail to the result as you can add multiple noise functions mapped onto data fields in your simulation determining brightness, opaqueness, etc.
Being fairly happy with the basic setup of this test simulation it was time to add a high res version. For this I more or less sticked with the default settings of the upressing solver (I did change the frequency of some of the noise functions).
One last thing missing from the above version was that the smoke is not yet illuminated by the fire of the explosion. The pyro shader can generate point clouds for the fire and smoke parts of the simulation for this purpose. These point clouds are used in a scattering function that lights up the smoke from within. This adds yet another layer of realism to the end result. The following render is the result of the high res version with scattering:
The picture below shows the point cloud generated for the fire (there’s also one for the smoke):
Finally, I’ve changed some of the parameters to further increase the initial expansion speed through the simulation. Another interesting approach to this (though less physically accurate) is to render out at a higher frame rate and use that to speed up the initial ‘bang’. This is again a low res version of the sim.