Fady Kadry talks about how an insanely unrealistic bet turned into more than a year of hard work using a home studio equipped with industry-standard software and explains how the Rivendell project went from a bunch of references to a stunning picturesque animation step by step.
My name is Fady, I am the Head of Build at DNEG Montreal. Fun fact, I studied Classics at the Ain Shams University in Cairo, a completely different field than what I chose to do for a living.
I have had the pleasure of traveling around the globe, working for the biggest names in the industry. I started my career as a freelancer in Egypt, I did some modeling and texture painting for TV commercials, TV animated series. My first professional step was at AROMA Design & Solutions in Giza, Egypt where I started my actual career as a generalist. I have done modeling, texture painting, look development, and some other things like lighting.
I had the pleasure of working in feature animation in Barajoun, Dubai. After that, I had the opportunity to work for DNEG London as a Generalist TD. I also worked at Weta Digital as a Groomer/Modeler for such shows as Valerian and the City of a Thousand Planets, Justice League, Alita: Battle Angel, and other shows.
I then joined Scanline VFX in Vancouver as a Groomer/CFX artist where I worked on shows like Justice League, The Meg, and briefly on Black Panther. Later on, I had the opportunity to join the extremely talented team at ILM Vancouver as a Modeler (where I have done hard surface and organic modeling) and Groom for projects like Bumblebee, Aladdin, and Overlord.
Then I worked at Method Studios Vancouver and Montreal as a Lead Groomer and later was promoted to Head of Groom where I worked on such shows as Aquaman, The Christmas Chronicles, Bloodshot, Men in Black: International, and the remake of The Witches.
This journey led me to where I am today, I started at DNEG Montreal as a CG Build Supervisor in such shows as Ghostbusters: Afterlife, Infinite, and that marked my last hands-on show (at least for now) as I have transitioned into the Head of Build, where my responsibilities are about building a strong team that can tackle complicated asset work from modeling all the way to groom.
Working on the Rivendell Scene
I am a huge fan of The Lord of the Rings. My first groom demo reel was all about hobbits.
But the Rivendell project started with a bet with my friends (which I ultimately lost) that I can re-create this concept in just one month!
Later I decided to change this concept as I wanted to create a nicer composition.
Apparently, I overestimated how many hours there are in a day after finishing my full-time job as a Head of Groom at the time. Re-creating Rivendell was always a dream of mine and it seemed like a good challenge and also a great source and motive to learn new aspects of the industry that I had never tackled before like water simulation, pyro simulation, scattering, and USD. What made me proud the most, is how long this project took and how determined I was to finish it.
Working with reference was quite easy, I have a long modeling background. So I could read and understand how the different buildings were created and connected with little information that you can extract from the Internet-collected references (which sometimes is the case when working in the industry and references are not provided).
I managed to install CentOS 7.6 as my operating system, which gave me the flexibility to install and modify some of the major DCCs that we use in our day-to-day life at any studio.
Also, having CentOS as my operating system allowed me to build, install, configure and connect my storage server to my system using ZFS filesystem and NFS via 10GB network interfaces to allow me to transfer huge files at a reasonable speed.
My home setup is the following:
1) Main workstation
- 2x 2698 Xeon 80 threads
- 256 GB ram DDR4
- RTX titan
- multiple SSD for system and cache drives
- EIZO CG24
2) Storage server
- 2×2620 24 threads
- 128 GB DDR3
- 60 TB SAS
A major part of the project plan was creating a reliable and highly effective home pipeline that would tie everything together into a whole puzzle.
A key point of this project was to utilize USD (Universal Scene Description) from Pixar as a bridge between Houdini, Maya, and Katana. Which at the time, I had to manually compile. After a good deal of sleepless nights, one day it worked. And that day will always be in my memory.
Then came the time to install all the pieces that would help me get to the finish line. I decided to work with industry-standard tools such as The Foundry toolset (Mari, NukeX/Studio, Katana), Houdini, Mudbox, ZBrush, SpeedTree, UVLayout, RV, Modo, Substance Suite, Pixar’s RenderMan.
Blockouts and Modeling
The goal of this project was to imitate a production workflow. I started by blocking out how the scene would look with simple shapes. Lighting the scene in a blocking stage played a huge role in dictating the overall complexity of the assets, and having the light in the scene while creating the camera position and animation gave me the opportunity to visualize the scene at an early stage.
I used Houdini for the blocking stage. Also, I started to use Houdini to model the main buildings which was quite an adventure.
For the buildings, as mentioned above, I utilized Houdini’s powerful procedural nature while creating the roof tiles. With the help of the Internet, I found some different ways in creating a brick wall setup that later helped me to utilize the same approach but with pre-modeled roof tiles.
The same goes for the ornaments (as it is elvish architecture), I followed the same approach as the one mentioned above, but this time, I took a lot from the traditional modeling approach. And as I mentioned above, the blocking stage allowed me to save efforts when modeling and not to overwork a single area as it would not be that visible from the camera distance I chose for the shot.
The cliffs were quite the adventure. For the first time in my career, I decided to dive as deep as I could into procedural modeling. After looking into multiple references for the cliffs from different European regions, after a lot of hours scavenging the Houdini techniques on how to create procedural tools to create cliffs, I came to the realization that I could do it! Which led me to create the cliffGenerator v01.
CliffGenerator v01 allows me to draw a simple curve as a profile for the cliff. The tool then duplicates the curve to a pre-defined height, lofts it, and then extrudes the volume to a pre-defined depth. After these steps, the tool then scatters the points with shapes (you can create shapes or leave it to the default, cubes with Mountain SOP applied to them) with different orientations, then a Boolean subtraction operation is applied between the cubes and the cliff and that gives the organic final shape like the one you see in the image below.
Another tool I have created is the layeredRock generator. This tool is based on a tutorial but with some modifications to give me the result I need, which is the layered rocks with all the different elements that I have in mind. The resulting geometry is then taken to ZBrush for a remesh process to clean up and give me a quad geometry that later I can subdivide in render time in case I am using any sculpted details based on a Displacement Map.
I used Mudbox for my experiments with Displacement Maps, the reason behind my preference towards Mudbox over ZBrush is that I can easily use it in Linux (CentOS) and do not need to install a VM to launch ZBrush.
Working on Vegetation
Vegetation was a great deal of fun to do. I used the Houdini Heightfield Scatter toolset with some modifications to be able to export USD-compatible render time scatter system for later use in Katana and RenderMan.
I started creating the pines in SpeedTree 8, where separating the canopies and the barks allowed me to easily create varied material based on the Cd attribute exported from Houdini and included in the USD file format.
In total, I had 14 variations of trees, three different sizes (Large, Medium, Small), I also had around 6 variations of shrubs.
This project took me around one year and seven months to finish! The actual hours spent on this project come to a whopping 1320 hours. Balancing full-time work (plus overtime sometimes) and life responsibilities, I found myself able to work a couple of hours a day and on the weekends maybe 5 to 7 hours a day, some days not at all.
The main challenges I faced while working on this project were getting USD to work properly between all DCCs used in this project, getting the water simulation done, and finally, the render time. As mentioned above, I had to render everything at home. Meaning, my local workstation had to be occupied for extended periods of time during render time which delayed me from finishing other aspects like comp for example.
My advice to any artist, Environment Artists, FX Artists, Character Artists, anyone actually is to never give up on your project. It might take longer to finish, but in the end, you will gain a lot of knowledge from the mistakes you made, the correct things you did, and all the tutorials you watched.
For the Environment Artists specifically, start slow, do not rush to the final product while you still need to block out your scene. Always have a temporary light setup in hand and a camera in your scene if you can. It will help you a lot in determining where you can save and where you have to spend your time and effort.
Hope this article sheds some light on my approach to finishing this project.