In this project, I had the pleasure to contribute dust effects. This is something, I’d wanted to do since I watched breakdowns of loads of dust fx for ‘Prince of Persia’. So, I was really happy when Marijn asked me to work on this shot. As a refresher, I’ve included the final graded shot below:
View in full resolution: Graded_dogs.
Dust simulation, sources:
The dust simulation is a single volume fluid (smoke) simulation in Houdini.
It uses two sources. One for the dust kicked up by the dog’s feet, and one for the ‘disintegration’ of the dogs into the dust cloud, which has formed from the first. The sources had a upward and ‘forward’ velocity associated to it to push the dust in the right direction.
The first source contains a bunch of simple surfaces, animated below and slightly trailing the dogs, on which points are scattered. These points are used as the smoke source, for the ‘feet’ dust. These ‘per dog’ sources where combined with a overall source in the center of the dogs to add additional density.
View in full resolution: dm_dust_source1.
The second source is a bit more complicated. It is created from the dog geometry that Linus ‘rotomatched’ to the composite of the four dogs. I added an ‘box’ object that is animated to move over the dogs from the back to front. The dogs and boxes are combined through a boolean that creates an overlapping area where the dog is started to be cut by the box. A volume is created from this overlap into which points are scattered. This forms the second source for the dust.
View in full resolution: dm_dust_source2.
Dust simulation, Density:
The biggest challenge with generating the dust was to get a high enough density for a car to emerge from out of hiding, without it looking weird. There was a very limited amount of time for the dust to accumulate in combination with the high velocity of the dogs and car, which tends to disperse the dust very quickly again.
In order to compensate for this, an animated amount of global wind force was used in the direction in which the dogs are running. The force is strong at the beginning when the dust accumulates and lowers to nothing once the car starts emerging. The combination of this got a high enough density at the right time. It also helped dispersing the dust after the car was fully visible.
Dust simulation, Volume size:
Another potential problem was the distance of travel of the dogs and the car during the shot. If the total distance would have to be covered with a single volume this would need to be prohibitively large and high resolution in order to keep a sensible level of detail. Luckily, Houdini allows to create a moving ‘window’ of volume (volume resize). This ‘window’ behaves like a localised subset of a very large volume. This allowed a volume that was just big enough to fill the frame, which travels with the dogs and car, saving a lot of memory and processing time.
Dust simulation, Car interaction:
A proxy model of the car was added as a static object to the simulation in order for the dust to interact with the emerging vehicle (animated by Richard Levene). This included animated wheel objects that helped churn the dust around the wheels, which added a nice level or realism.
View in full resolution: dm_dustsim_visualise.
View in full resolution: dm_dustsim_density.
A simple lighting setup was used for lighting the dust, the most important light was a directional light representing the sun, with deep shadows. We considered using a HDRI, but in the end this didn’t turn out to be very necessary. Deep shadows were generated for the dust and separate shadows were also rendered on the car and dogs.
All dust rendering was done using Houdini’s Mantra in micro polygon mode (REYS algorithm) with deep shadows. Rendering was done on a small farm of four 8 core xeon machines.
For rendering the dust itself, Houdini’s standard smoke shader was used, with color and density settings tuned to create a dust look. The density and shadow density of the dust were set fairly high to further help hiding the car.
This density was animated down once the car started emerging. The car was rendered as a ‘phantom’ object for the dust render (the high res geo this time), which automatically basically created a volume cut out of the car so the dust could be composited over the car with proper density.
The dust passes included a dust pass, a dust self shadow pass and a shadow pass on the dogs and car.
View in full resolution: dm_dust_passes.
A number of passes were rendered on top of the car to further help integration in the comp. This included a reflection, refraction and fresnel pass of the dust on the car. For this the high resolution car geo was used.
View in full resolution: dm_cardust_passes.
I think this project highlights how possible it currently is to have dispersed teams of artist work together on a production under very tight deadlines and deliver great results. Everybody showed great flexibility and effort to make all the shots in the clip the best possible.
Anyway, the end results are all in this blog series for you to judge for yourself, and more are to follow!