Using Houdini to simulate magic, explained.
For season 2 of the Sky One show, A Discovery of Witches, one of the visual effects requirements set to REALTIME was developing the ‘scrying’ magic.
In this special step-by-step explanation for befores & afters, REALTIME lead FX TD Graham Collier explains how the magic sims were achieved in Houdini.
1. Concepts, previs and RnD
Our approach for the FX-driven scrying magic sequence was led by developing concepts with our client, giving us a strong starting point to experiment with several simulations in Houdini. We also developed previs at this point to block out the scale and motion of the FX for the sequence, and act as a guide for the live action shoot. The simulation tests were then developed further as 2D concepts to achieve the right look and feel for the scrying magic.
2. Starting at the base
The next step was to take these concepts and previs and find a working simulated solution. We started simulating the base shape, which was a swirling pool of smoke which contained magical trails. A velocity field was first generated in Houdini around a circular spline that would be the driving force for the effect. Particles were advected around this field to create volumes of smoke swirling around. Another layer of smoke was then added to this to create a more turbulent detailed look. The velocities from the smoke simulation were then used to advect strings of millions of particles to create a dynamic fluid effect within the swirling smoke.
3. The rising elements
To create the rising columns of smoke and have control over their direction and behaviour, we adopted a post sim displacement approach. The smoke was simulated to only rise in a vertical direction with a small amount of turbulence. These columns of smoke were then displaced along splines that we could reshape into a helix pattern and animate. This approach was also used to create a hood shape around the character Rebecca (Sophia Myles) for when she appeared in the smoke. We also designed softer variations of this to create a central swirling column.
4. Other layers of complexity
To help make the effect look more dynamic, we used these smoke elements to emit another simulated layer of smoke on top of the splines. We then used the velocities from this dynamic smoke to advect particles around the column. These particles were used to create a final detailed smoke sim, giving a complex tendril look to the simulation. Additional layers were simulated including glowing particles, dust elements, flames, enhanced smudge stick smoke, and transition smoke elements that were advected around a 3D model of Rebecca. All these layers were put together to create the complex and dynamic VFX sequence.
5. Lighting, rendering and compositing
On set lighting was recorded with HDR photography, light probes and Macbeth charts. The lighting team used these to create a base lighting setup for each environment. Additional lights were created to match the practical lighting from the candles plus any FX lighting. These lights were all rendered as layers that could be controlled later in comp, enabling us to control the lighting in an artistic way and add flickering to the smoke from the candles.
To allow the compositors to embed Rebecca into the smoke elements we used a volume clipping technique to split the FX into different depth layers that were rendered as separate passes. FX slap comps containing all these elements were passed on to the compositing team for final integration into the live action plates using Nuke.