Featured Artist: Alex Halstead, Australia
Hi my name is Alex Halstead, I’m a Senior FX Artist from Australia currently working at Iloura, Melbourne. Over the past ten years, I’ve had the opportunity to work on several video games, films, animated features, tv shows and commercials. I’ve also been very fortunate to work with and learn from immensely talented people at various award-winning studios in Australia and overseas. Coming from a Generalist Max and Maya background, I moved to Houdini about 5 years ago and haven’t looked back!
Working in the FX Department is an exciting place to be these days. No two projects are the same and quite often, no two days are either. You might be simulating a monolithic tidal wave one day and then digitally casting spells for Harry Potter the next. Technology is advancing exponentially every year and there are more tools and resources at our disposal than ever before.
With a strong alchemy of art and science, the world of natural (and unnatural) phenomena is the FX Artist's playground. FX Artists typically garner a tonne of knowledge about the natural world in order to convincingly create things we've never seen while also re-creating digital versions of things for financial or practical reasons. Applying their knowledge of design, colour theory, light, motion, physics and complex mathematics, FX Artists can conjure up anything and everything in the most realistic and exciting way possible for film audiences.
Over the years, I've been very fortunate to work with amazingly talented people on a variety of different projects, all demanding very different effects needs. I have created destruction, water, particles, magic, a tentacle creature made out of anti-gravity viscous liquid (yes - really). But the one thing I've probably done the most in my career is gaseous fluid dynamics: Smoke, explosions, dust, steam, but most of all, fire. Sometimes it's just one sequence on a project (Suicide Squad) and sometimes it's an entire film full of it (Ghost Rider: Spirit of Vengeance). One thing that's for sure is that digital pyrotechnics has become a mainstay of the visual effects repertoire. So we might as well get good at it!
Lots of fire and smoke on Suicide Squad!
Digital pyrotechnics has long been an intimidating prospect in visual effects, right up there with digital water and characters. It’s a balancing act between artistry, computer power, realism and compromise.
While audiences might not be able to articulate why something is visually wrong on screen, the human visual cortex can pick up on the most subtle of differences, immediately severing the immersion with a film. This quite often results in comments like the audience favourite "CGI sucks" rather than "man did you see how bad the turbulence looked in the fire's velocity field? Totally took me out of the movie". If visual effects are done successfully, they are usually invisible to audiences. This is an unfortunate reality of our jobs. If we do a good job, no one notices and if we don't, it's immediately recognisable, destined to join a long list of examples of why "CGI is bad".
Instead of going over the technical aspects in a step by step order of nodes and parameter values, I thought I’d discuss something that’s less talked about but equally important: Workflow. Over the years I’ve created digital fire in various software packages, each one has its quirks and limitations but ultimately the approach I take to create and iterate pyro effects in production is the same.
Simulating digital fire can get technical pretty quickly, especially in Houdini where you have a lot of control at your disposal (seriously, there are more than 100 micro-solvers). So let's just quickly demystify what's going on under the hood.
All modern fluid solvers still utilise the Navier-Stokes equations from a couple of hundreds of years ago. Named after Claude-Louis Navier and George Gabriel Stokes, the equations describe the motion of fluid substances. A solution of the equations is known as a flow field or more commonly in visual effects; a velocity field. So instead of describing the trajectories of a position like in classical mechanics, the equations describe the velocity of a region of space (in our case, a voxel) over an interval of time (a simulation step). Once the velocity field is solved, other attributes can be derived such as pressure, temperature etc.
The navier stokes equations.
Before I put you to sleep, the main take-away to remember is that the velocity field is the drive-shaft for the end result of your simulation. Before adding all the bells and whistles, It's important to get the broad strokes in place such as timing and composition. Which is basically just getting your velocity field right.
So with that primer. The first step I take is...
Reference is crucial to deconstructing the elements so Youtube should be your best friend. But looking at five different clips of fire, you'll quickly notice they all possess different qualities that often contradict each other. This is why it's important to find reference footage that matches the context of the shot and/or sequence you're working on. It will give you something to aim for and keep you focused.
Unlike matching to an object or lighting situation, fire's visual qualities are usually tied to four main things:
Chemistry: The combustion method (ie. the fuel source and ignition used)
The lighting situation: Lighting sources (night or day etc)
Optics: The type of camera, lens, shutter, exposure, etc.
Environment: Inside, outside, wind, in the vacuum of space.
Ideally, having fire on-set is the best scenario, but it unfortunately rarely happens. Otherwise, keep those four things in mind as the recipe for creating the illusion of fire.
Explosion breakdown video for Ghost Rider
Once I have my pyro grid setup and everything is ready to go, I start with a division size of roughly half of my estimated final voxel count. I personally try to keep my final voxel count under 100 million voxels if possible. That way I can iterate on simulations quicker while staying in the ballpark of the intended higher resolution effect.
Next, I get the broad strokes of the simulation going. Scale, speed, direction, composition etc. It’s important to start simple and get a solid foundation. This way you’ll only be balancing a handful of parameters, allowing much quicker iterations.
Once I’m happy with the scale, speed and direction, I’ll start adding my shaping. Unless you really know what you’re doing, I find it helpful to tick on one shaping parameter at a time. This way, if your simulation is giving you bad results, you can identify the culprit easily instead of spending hours debugging, looking for the needle in the simulation haystack.
Looking at fire all day, it can be hard to have fresh eyes as to what is and isn’t working, this is where saving flip books can really come in handy. By saving separate sequences in MPlay and using the Sequence List Window, you can compare your previous simulations to see how it’s progressed over the day. Quite often you might find your simulation gets worse before it gets better. Knowing what NOT to do is a time-consuming but essential part of the process towards the final result.
Typically during a work day, I’ll mostly work at a lower resolution to develop the right look over the day and then submit the high-res version to the renderfarm before I leave for the day. But once I hone in on the correct settings and parameters during the day, I always try to increase the division size in the afternoon before I submit it to the farm for the night. I usually find Houdini’s pyro effects scale quite well but occasionally unexpected results can occur at a higher resolution. Testing with a higher resolution grid before submitting to the render farm helps to eliminate potential issues so that I have a more predictable result the following day to show to Leads and Supervisors.
Using an artistic approach, you can achieve some really interesting results.
In my opinion, shading fire and smoke is the major make or break for achieving realism. An average sim with a great fire shader will fair much better than a great simulation with an average shader. So with that in mind, it’s good practice to get your shader working up front. The simulation’s entire purpose after all is to be rendered, so don’t wait until you have the perfect sim. Render often and get your shader as close to your desired final look first. This way you can alter your simulation settings to work for your shader instead of the other way around. Don’t be afraid to jump into the pyro shading network either, that’s where the real power lies.
Blackbody Shading vs Artistic:
Blue explosion? Why not?
There has been a huge rise in the use of the Black-body shading model over the last few years. Mostly due to it being based on a physically correct measurement of thermal electromagnetic radiation known as Black-body radiation. This basically means that the shader will emit colors based on the simulation’s kelvin temperature values which can give some very realistic results.
The major draw-back with Black-body is that because the colors are based on kelvin temperature values, it’s fairly hard to art direct. And if you’re working on a project with lots of artists, lots of fire, and lots of different temperature values, the fire can quickly become visually inconsistent. Something to consider before you start a huge project full of digital fire.
Some fun with Black-body Shading.
Pick your battles:
Sometimes, approaching simulations the procedural and physically correct way just doesn’t cut it. Knowing when to pick your battles and when to try something different all comes down to experience. There’s no point spending weeks trying to proceduralize something that could simply be done with a quick keyframe animation in one second. Maybe it’s better to add detail in the shader instead of in the simulation. Perhaps rendering additional AOVs for the compositing department will work better than rendering it into the beauty. It’s always good practice to consider the end result and how best to get there with the time and resources available.
Communication and team-work is also the key to success. It’s obviously necessary to set out on your own journey of artistic discovery each day, but it’s equally important to re-join the group to share your successes and failures. Chances are someone has run up against the same problem you have or they just simply have a completely different way of approaching something. You’re all in the same boat so you might as well share your ideas for a really good paddle!
A whole movie’s worth of fire on Ghost Rider: Spirit of Vengeance!
Avoiding Common Curses of Digital Fire:
Computer generated imagery has always suffered from looking too clean and precise, devoid of any imperfections. The real art in achieving photo-realism is in adding those imperfections back in. Blur, grain, lens artefacts, asymmetry etc. Digital fire is no different so here are some things to keep in mind:
Go easy on the Turbulence! While it's a tempting parameter for adding detail, it can quickly break the effect very quickly. One of the most common pitfalls in digital fire is either too much turbulence or the wrong frequency is used - resulting in a forest fire that looks miniature.
Disturbance is your friend but use it wisely. To avoid a fuzzy mess in your smoke, mask the disturbance field by heat, fuel, or temperature.
Layer your Turbulence and Disturbance. Nature heavily abides by the Power Law instead of uniformity. Add multiple sizes of turbulence and disturbance to add more natural shapes and motion.
Stepping. Sub-steps are essential for fast moving objects but are a bit of a luxury of time. Sometimes pre-blurring your sources can do the trick just as well.
Avoid overexposing the fire in your renders. It's always better to boost it up in Compositing.
Avoid adding unjustified glow to your fire, especially in daytime environments. You don't want your fire brighter than the sun!
Always render with motion blur. Fire moves fast, like really fast, so it should blur accordingly.
Incorporate heat distortion. Gas and heat refracts the environment behind it. Adding this in Comp can really help to integrate it into the plate.
Add wind direction. This is usually a big give-away for cg fire. It goes straight up with perfect buoyancy as if it's sitting in your living room. Try introduce some wind and make sure to match to the wind direction in the plate.
Alex Halstead 2017
By: Patricia Cornet