2020 – Personal Project – All aspects apart from asset modeling and compositing
This was a personal project featuring a helicopter dropping countermeasure flares over desert terrain. A single fully CG shot with terrain elements and procedural rocks made in Houdini, flares created with the sparse pyro solver and rendered using Arnold. I was responsible for all aspects of the shot, minus assets and compositing, with the helicopter model being provided by Joe Henton and compositing being done by Oliver Blowers.
The project started as a challenge to recreate a piece of footage I stumbled across, which presented an opportunity to have a first play with Houdini’s terrain tools, and take another look at the sparse pyro solver to create the flares themselves.
The main challenge of this piece was optimising the large terrain assets, high number of supporting rock assets and the smoke sims, which were being emitted from a fast moving helicopter. For this shot the main tool used was Houdini, used to generate terrain patches, procedural rocks and the flare sims, along with a particle based heat distortion pass.
The terrain was initially designed as one large asset, but it quickly became obvious this was going to present a bottleneck as the detail and scale required from the asset would have led to unmanageable polycounts. In the end the terrain was split into three patches based on distance from the camera and terrain type, which were then loaded as Arnold standins and duplicated and positioned in the final scene. This made working on them far easier as each element of the terrain (dunes, mountains etc.) could be tweaked individually, and enabled each patch to be higher resolution with less slowdown in the viewport.
To make use of the powerful terrain scattering tools inside Houdini while also allowing the high number of scattered assets to be rendered in Maya, I used the Houdini engine plugin to import the scattered rocks, which allowed for tweaks to be made inside Houdini which were then reflected inside Maya, while leveraging Maya instances to keep the scene light enough to work on. There were improvements to the pipeline which could have been made, but this method worked for a project of this scale.
The final big hurdle was the smoke sims for the flares and simulating them on limited hardware. By using the sparse pyro solver, I was not limited by the need for a domain to solve, which enabled the relatively efficient simulation of the long tails of smoke generated by the flares, but this was not enough of an optimisation to run them as a single simulation at a level of detail beyond my early test. To further optimise the sims, each pair of flares was simulated separately, and I developed a method for removing density outside of the camera frustum, both of which led to a massive decrease in caching times.
Watch the full shot breakdown here: