This was surely a tricky one, but at the same time was probably my favorite FX work. My task was to create an FX for the Alita’s Berserker armour transformation, from a neutral body shape, to a curvy , super strong and athletic female shape. Mr Rodriguez wanted this FX to give the idea that during the transformation something was happening at the chemical level, but at the same time wanted to add some nano-technology element. During the developement of this FX I had the chance to develop an OpenCL , GPU-Based implementation of the Reaction Diffusion algorithm , modified to work on an arbitrary geometry (non-quad geometry, points and on volumes as well). The nano-tech side of the FX was driven by the underlying reaction-diffusion pattern.
Task: sim and render of the elements tornado, debris and rain. Software : Houdini 14 Technique : I’ve used a point distribution animated procedurally to generate velocity and density source fields to drive a low res smoke simulation. In order to maintain the simulation art-directable , at every time step I’ve replaced 95% of the simulated velocity with the source velocity. The resulting low res sim is fast (~1 fps). All the details of the Tornado have been added at render time using a volume procedural shader, which allowed me to advect the original low-res density along vector noise fields mixed with the velocity field itself.
Debris , Debris Skirt and Rain are particle simulations.
Work : CG Crowd.
In this project I had to create and place a crowd (3.000 to 2.000.000 depending on the shot camera position). Each agent was wearing a wristband that would emit light of different colors according to animated patterns. The pattern had to be clearly visible from a distance, but at the same time, the crowd had to be believable from a relatively short distance (~40 m). The Director wanted to see light interaction on the crowd for the light generated by the wrist bands.
In order to be able to work quickly and allow the compers to test different wrist band patterns in Nuke without re-rendering from Houdini, I choose the route of re-lighting the crowd in Nuke, rendering every necessary AOV from Houdini.
I was provided with a library of dancing CG characters and a set of textures for the clothing.
The system was subdivided in 3 steps:
Crowd generation : generation of about 50 characters, procedurally dressed using the textures provided (Houdini OTL). Additionally for each character I was generating data that would later help me to render AOV passes related to the wrist band position and light interaction range.
Crowd render per Shot : in each shot I was positioning the crowd painting points over a surface. Later I was using copy SOP (with Packed primitives packing option enabled) to instance the characters on the crowd. For each shot the crowd was rendered with several AOVs.
Nuke Relighting Setup per Shot : I set up a key Nuke setup in which the crowd could be relighted using P and N AOVs. Using additional AOVs containing the wrist band data, compers were able to replace the wrist band pattern procedurally in Nuke.
Here’s my last work on “It Follows”, a Horror Movie presented at Cannes 2014 in the Critics Week section.
Project : It Follows (2014)
Role : FX, Modeling, Rendering, Lighting, Tracking, Compositing, Compositor
Production companies: Northern Lights Films, Animal Kingdom, Two Flints
Cast: Maika Monroe, Keir Gilchrist, Daniel Zovatto, Jake Weary, Olivia Luccardi, Lili Sepe
Director-screenwriter: David Robert Mitchell
Producers: Rebecca Green, Laura D. Smith, David Robert Mitchell, David Kaplan, Erik Rommesmo
Executive producers: Frederick W. Green, Joshua Astrachan, P. Jennifer Dana, Jeff Schlossman, Bill Wallwork, Alan Pao, Corey Large, Mia Chang
Director of photography: Michael Gioulakis
Production designer: Michael T. Perry
Costume designer: Kimberly Leitz-McCauley
Editor: Julio C. Perez IV
Sales: Cinetic/Visit Films
I’ve played a bit with Python Sops , Vex sops, and Vop Sops.
Python sops are a really powerful tool cause they allow using Python !! Which is a way more complete scripting language than VEX. And yes, I am talking above all about….recursion !
Now, the power of Python comes to a big price compared to VEX: performance.
In order to quantify how slower a python script might get, compared to the identical Vex version I created a simple Python Sop to calculate the closest point on a surface , given a bunch of points in the world space (a very dense grid in the example), and an SDF (this can be a volume or a vdb sdf, it doesn’t make much difference).
Check it out yourself:
Don’t forget to install ths OTL in your favorite otl scan path.