This weeks’ session began with a demonstration of a fog effect inside a sci-fi corridor, that I was able to find and reproduce the effect but was not able to get the color of the interior as Mehdi did. But I got the chance to know how it works through an atmosphere volume inside the arnold shader node. The real exercise this week was to create an explosion and in the end we used a sphere to create a collision with the smoke and see how it reacted.
First we made a fire and flame simulation, for this we created a circle and scattered it, now we need to add an attribute create node for density, as we need it for the DOP network that is going to be created after this, so that we have the simulation emerging from the circle. A color node is added and density is applied to it as well as on a volume rasterize node, finally we add a null node and all is set to try out the DOP network.
Inside the DOP network, as we are on the latest version of houdini we can use the smokesolver sparse node as it is optimized, if we used the smoke solver node the difference would be that the smoke would be simulated inside a boundiing box, while on the sparse nodes that bounding box grows with the simulation and it is faster to calculate, as the empty spaces are no longer calculated opposite to the “old” smoke solver node.
To use the sparse smoke solver we have to use the other sparse nodes, so we connect a smoke object sparse (container) to the solver as well as a volume source (works like the pop source from week 2) and it is connected to sourcing. This is the node where we can attribute diverse volumes to be calculated such as density, temperature, flame, color and velocity. When we run the simulation we can see that something is missing, it’s very white and flat, so we need to add lights, for that we create a dop import node to visualize some of the data from the DOP network and assign it density, temperature, velocity and color. Create 2 arnold lights on objects network and assign them blueish and redish colors (very subtle) with opposite directions, now everything looks better and we can begin playing with the fire and flame with a volume visualisation node and assign temperature to the emission.
Now it looks more like a fire and not just smoke, on the DOP network with a gas turbulence node we can teak the attributes to give it the proper swirl and turbulence, break the shape a little and whatever necessary for the effect we need. This is what the flame looked like after tweaking and adding a wind forceto the simulation.



To render we used the convert vbd, vdb vector merge, primitive and file cache nodes, but arnold can only render volumes with an arnold volume node with the rendered file cache assigned to it, as well as an arnold shader this time with a standard volume. This is what the render looked like:

To the explosion simulation!!
Instead of creating a circle and have a fire emerge from it, we created a sphere, a vdb from polygons and a scatter node and a pyro source to create the volumes with the help of a volume rasterize node to assign the attributes density and temperature. Now we can add a pyro solver node where we will have most of the explosion and other related simulations attributes and tweaks like temperature of the smoke, cooling rate, breaking up the shape, etc. We added a volume visualizer node for a bit more flexibility in the simulation look.
After experimenting all the attributes and parameters, we prepared the render with the same process as before, convert to vdb and with a file cache node assign it to an arnold volume and it’s shader and it is ready to render. This is what it looked like:


This render took a bit more tweaking on the shader as we used a ramp rgb node connected to the emition of the standard volume and there it is possible to push the colors a bit more and really make it look like a huge explosion.
Collision!!
To end this weeks session Mehdi taught us how to have an object such as a sphere and have it collide with the explosion and flame, for that we keyed a sphere going through the simulation and with a vdb from polygons connected it to the pyro solver node. This is what the explosion collision looked like:
The same was done for the flame and finally we added a point velocity node to have the smoke follow the sphere and make it look a bit more realistic.