Rookie Awards 2024 - Open for Entries!
FX Showreel June 2023
Share  

FX Showreel June 2023

Anton Dann
by tondann on 24 May 2023 for Rookie Awards 2023

My FX showreel and a selection of my best work, broken down in detail.

4 1085 0
Round of applause for our sponsors

FX Showreel June 2023

For this entry I am thrilled to share my latest and best work all summarized in my showreel! Furthermore I will break down a selection of those shots below, explaining my process and showing production oriented workflows.

Rain FX on the Honda NSX-R

I always wanted to have a moody rain shot in my reel because I really like the atmosphere and look, so I decided to test my rain FX skills on this lovely model of the Honda NSX-R (Original asset created by Clément Feuillet, licensed by The Rookies).

This shot was meant as a tribute to Clément Feuillet and the Rookies Team, as they are too generous to provide a model of this quality! As a self taught student you rarely have the chance to work on perfectly modeled and UV'ed 3D models, so this was huge for me!

This project should not only represent my FX skills in Houdini but also my Lookdev abilities in Redshift, while also trying to prove that I am able to work in a production environment.

Inspiration

A selection of images that inspired the cinematic look and feel of my shot.

Breakdown

One thing was clear from the beginning: I needed some sort of collision for the car, since no dynamic simulation can live without it.

Even though the model is exceptionally well modeled it is definitely not watertight (no pun intended) for simulation.  I had to prepare and optimize it, to make the process of generating a collision volume easier and lightweight.

Since I only needed a surface representation of the car I decided to scatter points on the optimized mesh (removed inside pieces) and converted that into a VDB, reshaped it to close holes and then converted back to polygons. This was much easier than trying to make all panels and small details watertight for an actual volumetric representation. The rain particles were not falling with high velocity so the collision was accurate enough.

I was going for an urban style render so I wanted to have an asphalt floor, which already tells the story of the environment, by making it cracked and scattered with potholes. This should show how heavy the rain in this area usually is, completely destroying the asphalt. This enabled me to conveniently place simulated puddles in the potholes to further add onto the FX layers I had in mind.

I used a subdivided cube, scattered many points where the main potholes should form and then fractured it. After that I only had to delete the pieces I wanted to generate the holes in and the floor was done.

Simulations

For the rain itself I split the FX into several layers, to have more control about the look and to make it more art directible, without accidentally affecting other parts of the simulation.

The first layer is the falling and splashing rain drops, that I did with a simple pop-sim, where I spawned random amounts of particles on a grid, varied their air resistance with a popwind node (this also helped to reduce stepping, since all particles fall at different velocities) and let more "splashing" particles spawn on the hit location of each falling particle, when colliding with the floor, car or puddles. 

The second layer was the more complex one and (in my opinion) the one, that sells the effect. 

The car was supposed to look really wet, as if it were standing in the rain for hours, so I went online and looked for reference. Thanks to the bad weather in Germany I was also able to gather some first hand reference myself, so I took some videos with my phone of my own car in the rain. My own reference helped a lot to dial in the FX later, because no one films rain up close on a car (and I felt really dumb doing so myself).

The second layer was about recreating the droplets on the car, that give it the "wet" look. After studying my reference I noticed that in order to make things look really wet, it needs lots and lots of droplets that vary in size and shape. Making the droplets run down the surface in stringy trails sells the effect of pouring rain.

The stationary droplets were made by just scattering a lot of points onto the surface, using a poprelicate to form varying sizes and shapes. I needed those to make the car look like its standing in the rain for a long time, so all the droplets completely covered the surface already. 

To get the stringy trails I used a more complex FLIP sim setup, because I needed the particles to have fluid attributes like surface tension and attraction to each other, while making it cling to the surface as it runs down due to gravity pulling on it.  I limited the spawn area of those particles with a mask, to make them not spawn in the inside area. This helped with stability, performance and file size. The "gasstickoncollision" microsolver made the particles cling to the surface, instead of flying off of it.

After the simulation I trailed 80% of those particles to generate a noisy string of points, later then all to be meshed with a VDB workflow. To make the perfectly round meshed particles look like droplets that lay flat on the surface, I quickly subtracted the SDF of the car from the droplets, to cut the bottom off flat, respecting the cars curved surface. 

I noticed that due to the slightly bigger collision hull the particles were floating above the surface slightly, which cast bad shadows on to the car at render time. To counter that I sampled the normal vector v@N from the original car model and then moved all particles back on to the surface using the just sampled vector.

Lookdev

To shade the car I used a regular expression in VEX to filter out the material name for each part of the car, since the FBX file had a suffix in the name attribute for each polygon. The VEX code reads the name string and searches for the last word up until the first "_" character it finds (backwards). This way I knew which and how many materials I had to create in Redshift to completely shade the car, without missing any parts, which could have surprised me at render time. Using another VEX expression I generated a list of unique values for the newly created material attribute, which I then copied to a text file, so that I can work my way through the materials like a to do list.

The asphalt floor had to match the heavy rain, so I needed smooth and reflective puddles that blend nicely with the rough asphalt. To achieve that I used a noise to generate a smooth black and white masks, that I would use as a mix amount for a RS Color Mix, to blend between the normal map of the texture and a blue solid color. This way I tricked the normals into either pointing perfectly straight up (generating a completely reflective mirror like surface) or using the normal map, respecting the asphalt surface or something inbetween, as if water begins to pool in that area.

That same noise was used to multiply with the roughness map of the texture, so that the puddle reflections were not as rough looking as the asphalt itself. 

Spaceship FLIP Simulation

This shot was done as an assignment for the Rebelway course "Intro to FX in Houdini" for the FLIP simulation lessons. The core principals and techniques of FLIP were taught, but the idea of a spaceship emerging from a water tank inside a factory was mine.

Before jumping straight into the fun of simulating millions of particles I blocked in the animation of the spaceship and assembled a scenery with the incredible Kitbash Warehouse Model from RenderCrate. I was going for a warehouse / factory scene, where this futuristic alien-like spaceship could have been hidden from society, now breaking free, as it is emerging from below the surface.

Setting camera angles and a blockout of the scene early on enabled me to only focus on the FX part where it was needed and seen by the camera. I knew that I would not have to deal with creating the outdoor area or making a real exhaust fire for the spaceship, because it was not visible to the viewer. 

I tried to incorporate the heavy water masses acting on the ship into the hand keyframed animation. To do that I made the ship not rise in a straight upwards movement, but rather added in sway and a little tilt to the ships right hand side, as if the water was pushing downwards onto the wing. Then I made it stabilize itself, let it hover for a moment before it sets off into distance.

To make the effect of "boiling" water, before the ship breaks through the surface, I added a few offset smoke simulations to advect the FLIP particles in that area. This created nice vorticity and interesting movement to the water surface, as if the exhaust and rising forces of the ship were causing disturbance. As a bonus this made the water on top of the ship - just as it breaks the surface - a little more visually interesting, because the velocities were breaking up the otherwise perfectly smooth surface. 

The red points in the screenshot above are generating the pushback velocities, representing the forces coming from the exhaust, pushing the water away from the ship. First I created a cone shape, then filled them with a points from volume node and generated point velocites with an added noise for variation. I angled it slighty downwards to really push the water masses away, underlining how powerful that thruster is and attached it to the ship animation.

The whitewater was split into two groups: The first one in blue is normal whitewater or spray as its called. The second one in white is the lightweight mist and has increased air resistance through a popwind node, while also getting a directional velocity to the right, letting it appear lighter like fine mist in the air.

At render time I shaded the mist slightly more transparent while also animating the particle scale multiplied with its particle age to slowly fade them out, as their lifetime increases. This made the difference between heavy waterdrop whitewater and fine mist more clear, further diversifying the layers of FX, all from one single particle simulation.

The water was shaded using a regular refractive material with added subsurface scattering, to give it that blueish tint, which becomes darker and darker the deeper the water is. 

To balance the color temperature of the shot I decided to add a fake exhaust fire, casting an orange light to the back of the scene. To add the exhaust effect I hooked a noise function to the intensity of the light, making it flicker irregularly, as real exhausts from jet engines do. This way I implemented a warm tone into my otherwise cold and blueish shot, while also adding to the realism and liveliness of the ship effects.

Grain Dissolve FX

A typical dissolve effect, done with grains. I was going for a flaky sand like behaviour, that was still feeling light like ash getting swept away in the wind. 

All started with a mask that eats up the model of this statue and drives many attributes of the simulation. I began by selecting a few points to start the mask at and calculated the distance between the points and the model itself. From that I made an animated noised mask in a pointvop, by feeding the position vector of the statue, the distance float value and the Frame number of the scene into a mix of add and multiplication operations to get the desired look, speed and feel.

Like for the rain FX I needed a proper collision volume for the particles to collide against. This time the object was dissolving so I needed a volumetric representation and an erosion effect, because otherwise particles would collide against geometry that has already been dissolved.

To achieve this I scattered a lot of points inside the statue and applied the same mask I generated above. Then, in a wrangle I blasted away the points based on the mask and fed that into a VDB conversion, to generate the volumetric representation of the statue.

I used the initial mask to drive the start frame of each grain, by making the i@stopped attribute set to 1 from the beginning and then activating the grains wherever the mask has risen above a certain threshold, setting the i@stopped attribute to 0. All of this was done in a SOP-solver based workflow to update the geometry at simulation time in DOPs.

To get the wind motion I used a smoke simulation advecting the grains at simulation. I added microsolvers to enhance the rolling vortex effect, creating these swirly wind-swept motions.

Thank you for taking your time to go through my entry, it means a lot! 

I had a blast creating these shots and editing them together for my first Houdini FX showreel and I hope that you also enjoyed the detailed breakdowns for those three projects.

A huge thanks to the awesome Rookies team, to all of the sponsors and everyone who is involved to make this all possible, it really is an exceptional opportunity and I am honored to be participating this year.


Comments (0)

This project doesn't have any comments yet.