August 23, 2021
Rivendell is a fan art passion project from Fady Kadry, Head of Build at DNEG, and he’s here to tell us about his technical process for shading and lighting using Houdini and Katana with RenderMan 23.5.
Make sure to download the demo Katana and Houdini project files to follow along.
The terrain was straight forward. I followed the best rule ever … don’t complicate things! Based on how the light is being set up in magic hour and the scale of the scene, I decided not to over complicate my need for texture maps, so I ended up using only diffuse maps, which streamlined the texturing process.
At first, I did try RenderMan’s fantastic PrmanObjectStatment node in Katana which allows the user to fine tune how the geometry will behave at render time … it was surprisingly flexible to set up and get great results, but I didn’t want to increase my render times due to my tight deadlines, so instead, I made sure that the geometry had enough details to start with, which completely removed the need for displacement maps. I also only used Pixar Surface and Pixar Volume materials.
Here are my final look-dev results for the mountain terrain.
The buildings were a bit trickier. They have more elements and mixed materials, so it was important to identify what needed to be done early on. One way which I was able to make sure I wasn’t needlessly wasting resources was using a key light rig early on. Understanding light and shadow at the start of the project helped me decide which texture maps needed more or less detail.
With Katana’s powerful CEL system, and robust naming conventions, I was able to use only two shaders for each building, Wood, and Stone. For variety, I created a set of four materials, Roof Tiles, Stone, Tower, and Wood, and then disseminated these materials with the proper name suffix in the assets.
Similar to the terrain, and again, guided by the lighting, I managed to achieve the look I was after by only using diffuse maps … Although, given the distance from camera and render resolution, I introduced some shine using Pixar Surface specular lobes.
We can’t have a Lord of the rings fan project without water simulation ... especially waterfalls! After countless hours in Houdini creating water for such a large scale scene with home equipment and trying my best to get my setup as close to a production pipeline as possible, including a storage server and a 10GB network connection ... Having the proper attribute upon caching is key, staying consistent between caches is also crucial when handing over your simmed caches to lookdev/Lighting artists. Without a precise workflow, the look-dev workflow in Katana becomes cumbersome, including creating multiple setups for each cache as it has its own set of name attributes.
In this project I took care of sims and look-dev, so I made sure to create all the setups with a set naming conventions that would enable me to streamline the set up in Katana.
Thanks to the trusted Pixar Surface shader, I was able to create the water and white water materials very convincingly. It was also pretty straightforward as you can see in the material network.
For the whitewater set up, some OpScripts in Katana were needed to make sure the particle sizes are appropriately set for the scene scale.
Here is a screenshot of the scripts used, which were gathered from different sites and lots of searching.
The whitewater shader was set up using a combination of diffuse, specular, single scatter, and glass lobes.
This test waterfall was created in Houdini to test a complete workflow from simulation to lighting and rendering. This proof of concept was done before creating the waterfalls for this project with the purpose of getting all the elements from Houdini to Katana with all the proper attributes. One of the most important of these was the velocity attribute for applying whitewater velocity blur in RenderMan.
During my adventures with foliage in Houdini, it hit me that I would need to find a way to be able to introduce variation to create plausible vegetation. The time of year seems to be in autumn, so brownish to golden leaves should be present as well as evergreen pine trees.
To achieve this variation, I added a color attribute to each tree instance that later would allow me to use the PxrPrimvar node to manipulate the color of the tree canopies. Again, using the Pixar Surface shader was very simple and combining it with PxrColorCorrect, PxrBlend, and other RenderMan patterns allowed for a large range of creative control.
An elaborate plan was in place for the volumes. From the initial setup in houdini, I knew that I wouldn't be able to simulate my water mist with my current scene scale, so I decided to simulate at 0.1 scale of the scene, this would allow me to get a good result in a much faster manner.
When it came to lookdev and render, I reversed the scale of the volumes in Katana, applied a PxrVolume material and after some tweaks, I was able to achieve the intended aesthetic.
Some tricks to load a VDB sequence in katana with a simpler home setup goes something like this...
In the PrmanVol node, in the file section, replace the type from constant to expression and your file name in the expression should follow this naming convention:
‘/<USER_DIRECTORY>/<FILE_NAME>’ % frame
As for the Volume shader, it was a straightforward process, just a PxrVolume shader and some slight tweaks.
For a project this size, I was determined to minimize complexity, sophisticated setups, and over the top shading networks that would add little to the overall image … with that said, a complicated shading network would’ve been needed for a closer camera angle, so it was a benefit of the scope.
Ultimately, look through your scene camera, assess where you should spend your time, and with this approach, you’ll find shortcuts beneficial to the end product more often than not … and if you were following this tutorial so far, I’d assume you’ve noticed a recurring theme … Pixar Surface! Great shader ...