Explosions In Houdini

Intro

So a while back I had my first lead scare the hell out of me and she said: I'm putting you on fx integration for our smoke effects. Something is going wrong, and if you could fix it that would be great! Keep in mind this job was lighting, rendering and compositing all in one department, and I was the only one on the team with a visual effects background. It was fun at times. :)

 

So I over-researched Pyro effects.  These notes are the result of those panicked times.

Types of Explosions

 

When building an explosion it's probably a good idea to understand what type explosion you are attempting to build, and how it is being created. Therefore, understanding the different types that you can build, and the creation process behind them is important. There are 6 main types of explosions.

Natural: Volcanoes, Bush Fires, Dirt impacts, or any explosion resulting in an Earthy phenomenon we can place here. These are effects caused by an interaction with the biosphere of the earth.

Astronomical: Anything that explodes that is not on this Earth. Supernovas, Planetary explosions, or really anything that is out of this world. These are usually caused by sci-fi event,chemical,and universal causes.

Chemical: This category covers most made-made or artificial explosions. Examples: rockets, guns, gunpowder, fuel tanks, cars, etc.

Electrical and Magnetic: Any explosion caused with magnets or electricity. For example if you had an explosion at a Hydro power Plant, you'd place it under this category.

Mechanical and Vaporous: An explosion that is rupturing out of a container will will under this category. Or any explosion that involves pressurization, liquids, or chemicals. Usually workplace environments feature these types of explosions.

Nuclear: Nuclear explosions, Nuclear missiles, Uranium, etc. These are the largest man made explosions possible.

There are also some main properties of explosions you should familiarize yourself with as well.

Force: The overall explosive force emitted from the source. 

Velocity: The speed of the reaction. Usually the Velocity of an explosion is very high.

Heat Distribution and Characteristics: The dispersion of heat across the explosion. This can affect how the simulation dissipates, the color, and the expansion of the explosion itself.

Fragmentation: The pieces , particles, or other material an explosion gives off when it explodes.

Initialization: The process on how the explosion start. Whether that be by impact, shock, chemicals, or other environmental factors.

How to make a Basic Explosion

One way to always start with an explosion is using a shelf tool. There are two that seem to work pretty well. One being Fireball. and the other Explosion. Basically, start by selecting your chosen object to turn into an explosion, and hit that chosen shelf tool. Then your smoke import SOP and DOP should appear, and you should be good to go. 

You can also build your DOP and Import inside your Object level SOP. The choice is up to you, but if you are new to the game, stick to the shelf tools. Then have fun either way with the force options on your solver, and source objects.

Rendering an Explosion 

When rendering anything Pyro, you may run into some issues where the explosion may look poor in quality, the color may look wrong, render times are through the roof, etc. Here's some basic tips on how to avoid these problems. Some of these answers I found while lurking on the forums, so I would also recommend looking there.

Color and Lighting

In this section we are going to focus on materials and lights in your scene. Let's start with shaders. Based on the type of explosion or Pyro effect you've created, Houdini might have automatically added a shader on your sim for you. If not, you can select any of the materials in the Material Palette's Volume tab. If you are creating a shelf sim, then more than likely you'll be using a fireball or flames shader.

If you are using the fireball or flames material you'll notice that the fire has a color mode drop down menu. If I'm rendering realistic fire and smoke, I usually switch this over to Temperature to Physical Black Body Color. It gives you a lot more realistic ways to adjust your explosion's appearance. I also switch over to the Smoke Field and Fire Intensity Field tabs and turn on the use look up ramps. This also gives you more control over your explosion's fire and smoke output.

Lighting can be a bit more tricky. I always add an HDRI/Environment Light to all my scenes to create more realistic lighting, and match the lighting to my background plate more correctly. A Directional light is great for sunlight if your explosion is outside, or needs to be the center of illumination. If you need softened shadows in your creation add an ambient light. You can also change the tone of your shadows by changing the color of this light source. For sharper shadows, remove excess ambient light.

Rendering Engine and Object Selection

With rendering nowadays, I usually use PBR in Mantra for rendering everything. It works great, and your quality of work jumps up. Another thing that I'll mention in the Mantra node, is the Objects menu. Sometimes, while making VFX, you'll have to produce the matte for your fx. This is the menu to look at for excluding objects, forcing mattes, or creating solo lights. Take a look in your free time. :)

Resolution Issues

If you are using an newer version of Houdini(post-17), you may have to use this in the Hscript Editor to find the fluid-source node. Well, if you need to dig it back up from it's grave:

  • opunhide Sop fluidsource 

 

You'll more than likely at one point need to up the resolution on your creations. Sometimes adjusting the voxel size in the Pyro Solver can help, but more than likely it will punch your render times through the roof.


You can use the Up-res Container shelf tool in the Container Tools shelf to add the up-res solver. You are given the choice to add the up-res solver to the current DOP network or create a new DOP network. It is good practice to create a new DOP network for the up-resing after you cache out the base smoke/pyro simulation to disk out of SOPs. The DOP Import Fields SOP has the option to save the bgeo's to disk. 

Up-resing fireballs does work for adding minor texture. If you do want to play with up-resing, then you need to enable rest fields on the Smoke Object DOP and then in the Advanced Tab enable Dual Rest Fields. For such a fast moving fireball, try setting frames between Solves to say 5 as a start and set the Rest Advection Rate to 0.9 to 1 as you decrease the Frames between.

 

  • You may want to decrease the division size (that is, increase the resolution) of your containers before rendering.

  • Render Pyro effects using the micro polygon engine (Mantra render node > Properties tab > Render tab > Rendering Engine).

  • Set up your lights' shadow parameters (Light object > Shadow tab), set Shadow type to Depth Map Shadows, Pixel samples to 2×2, and Shadow Quality to 2.

  • To get more detail in the render, you can try decreasing the renderer’s Volume step size (Mantra render node > Properties tab > Sampling tab). This will not make a difference if the reason the render lacks detail is the pyro volume’s container is low resolution.