December 08, 2022
Created and written by Johnny Fehr. Modeling by Scott Denton. Edited by Leif Pedersen.
We’ve all been there … the endless scrolling through social media … until you come across something you like… in my case, I came across an amazing crab monster model by Scott Denton!
Since I had never textured such a character before, I was motivated to give it a shot and try to expand my skills, and since Scott is a cool dude, he sent me the hi and low res models so that I could fire up my graphics tablet and Mari
This section is pretty short because I didn’t model the character … but it’s easy to be amazed at the beautiful mesh topology. Huge respect and shout out to Scott!
Since Scott developed this character with a real time engine in mind, the UVs were all packed into a single UV tile, but I wanted to go more in the direction of a VFX pipeline, so I split the UVs into five different UDIM tiles.
Since I wasn't sure if I would get another version from Scott in the future, I decided to make only a few UDIMs, each with an 8k texture resolution. This allowed me to have a lot of fine detail.
I looked for crab references before I started texturing, and I wasn’t disappointed! Crabs are incredibly interesting animals, they come in so many different colors and species. In the end, I settled for a mix of real and fictional references to drive my creative choices.
For characters and creatures I always start with the displacement map. For this character, I baked the hires model as a displacement in Zbrush and then added more detail from this base in Mari. Since many color choices follow a character’s shape, including wear and grime, I find it important to always start with the displacement.
Next, I start with primary colors, which are usually very broad. Continuing the process, I start to add the second and a third color layers which are smaller in their distribution, always following the geometry.
I try to stay procedural for as long as possible, because at this point there is still a lot of trial and error behind my choices. During this step I also use the displacement map together with ambient occlusion and baked curvature maps to have procedurally based geometry masks for the different colors.
At this point I find it useful to export the textures to see them in the context of the rendering engine. It is important to me to have a solid base and I only start to work on the details once I’m happy.
I decided to use Houdini and RenderMan for the learning experience, and because I was very enthusiastic about the rendered results, especially the quality of ILM’s MaterialX LAMA material layering system. A lot of my joy with LAMA comes from the modular workflows, which allow me to add only the layers that I really need, giving me a lot more flexibility.
I always start as simple as possible with the materials, meaning only the traditional texture maps like diffuse, roughness, bump, displacement, and so on. Later, I generally use isolation texture masks when I’ve determined special areas of interest.
Of course there are various utility masks that can be used to push the lookdev in the shader even further, but I export such masks only when I have built a solid base.
The material network is rather simple and consists in manipulating textures with RenderMan nodes in order to get the desired look. The skin is probably the most complex in order to balance the strength of the subsurface effect based on different exoskeleton layers.
One key attribute to look out for in LamaSSS is Unit Length, which needs to be set to 0.001 to be physically accurate, because Houdini's default units are meters. Lama defaults to feet.
I'm also setting the SSS IOR to 1.8 to behave more like a crab and less like human skin. Some Anisotropy will allow the subsurface to come through from the rim lights and some Bleed will give the creature a bit of "gummyness."
If we work this way, the shader grows naturally over the various iterations and is easy to track and change. It’s good to stay away from starting with an overly complex shader which might end up being very confusing and difficult to control and edit.
I always start with a dome light and often use a rim light and a key light. This way I can already see how my shader reacts to this traditional lighting setup, which mimics a three-point lighting rig.
Neutral lighting is ideal to get started, which means no colors except minor saturation naturally present in the HRDI.
Most of the time I have a rough idea what the final lighting will look like, so I start off with something that gets me close. In production this is different of course, as art direction takes precedence, but for personal work we can take creative liberties.
After I tweak the textures and materials with this basic lighting setup, I continue to refine the final lighting setup to have a proper light balance and image contrast which will shape the character and bring out its features.
For color management I work with the ACES color system because it brings many advantages, including better color primaries and a wider chromaticity. It’s also the new film standard and it works seamlessly with RenderMan.
I also render out AOVs and LPEs to have more control in post over the different aspects of the image such as diffuse and specular components.
Of course I also try to optimize the render settings a bit so I don't have to wait longer than necessary for the final image. After I found optimal values for the min and max sampling, I set the bucket size to 64, which gives you a small performance boost if you have a reasonably powerful machine, but 32 is a happy medium.
For stills I often use Photoshop for the final compositing. After 10 years of experience, I know how to use it really well and get the results I want. For animations, I would definitely go with Nuke.
First I import the multilayer EXR file and apply my ACES LUT to it with the exposure correction to have the same result as I see in the renderview. Then I work on the different AOVs if necessary and retouch if there is something to fix.
When I am happy with the results I create a group and duplicate it, merge it together with the ACES LUT, and finally convert the scene to 16bit. This is a somewhat destructive workflow, but it’s sufficiently accurate for my personal work.
After that, I refine the image and highlight certain parts a bit more by brightening and darkening others a bit. Finally, I color grade the image to create a final aesthetic.
This is all subjective and personal taste, as I am not a colorist.
Johnny Fehr has worked at Cloudscape GmbH and Scanline VFX. He also does Mari tutorials for Foundry and the CG Lounge.
"For me, texturing is more than just creating digital materials, it's telling a story and breathing a soul into a digital object."
Brachur is available with a Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) License. This allows you to share and redistribute for non-commercial purposes, as long as you credit the original authors.