06.02.2018 / Philipp
How to grow and control ice!
The beginning of the spot is very graphical and reduced, but it should feel like we are looking onto the hood of the car in motion by the end of the spot.
The base is a model of a Mercedes to get the environment of the star as realistic as possible.
The animation consists of a few hand animated parameters, like the camera, the camera shake, the environment passing by for extra moving reflections and shadows. But the main part of the animation is simulated.
The simulation started with an environment smoke simulation. There are basically two sims, one emitting from the star and one filling the whole environment. The idea was, besides using them as extra layers for the final composite, to have some simulated velocities filling the whole space and to use them for the growth of the snow and ice.
We started with a simple space colonization algorithm to add some points to some starting positions on the star. In simple words the algorithm is designed to add new points, where there is empty space and it takes the velocities from the simulation above into account. The velocities basically restrict the growth in a certain direction. We experimented with branching, but ended up with a non branching version in the end, as these lines just built the basic foundation of direction and volume of the final ice structure on the star. The idea was to have an adjustable foundation, where we could remove or add lines and structures quickly and just run the more sophisticated sims afterwards to add the detail.
The basis for the animation on the hood was a lichtenberg figure. We tried to achieve a natural looking animation starting and growing from the star as a starting point - a purely artistic choice as we didn’t want to rely on simple fall-off / noise solutions. Additionally this also gave us the same structure of growing points and all their parameters like age, size and velocity like the base lines from above and we where able to reuse the detailed simulation for the growth on the hood.
We then used all this information as a basis for the detailed simulation of the ice growth. Basically just a lot of new points are added. Based on the velocities again and emitting from the simple lines we built above. The algorithm behind this is diffuse limited aggregation, as this came closest to what happens in the real world, when water molecules attach to existing structures to form crystals. We also took some water specific parameters like the attaching angle into account. And we used a position based dynamic solver to keep the points nice, neat and separated from each other.
The approach for the growth sim on the hood was the same as before with some minor tweaks. The velocity contribution was much lower, but we introduced the tendency to grow upwards.
Once the sims where good and the whole data was there the rest was easy. The whole animation was rendered with Redshift and Houdini on GPU’s. The lighting and shading was pretty straight forward, the insane amount of points and lines where rendered with instanced primitives. The ice shader took some time to render, because of a lot of refraction and sss rays due to the amount of geometry, but Redshift did a good job to put this out in a reasonable time.
watch final animation