Lead Surfacing Artists at Axis Studios Sebastian Deredas and Peter Nowacki have told us about the production process behind Mason from Love, Death+Robots' Mason's Rats episode, explained how the character's clothes were textured, discussed the creation of shaders, and showed how his skin was set up.
80.lv: Could you please introduce yourselves to our readers?
Sebastian Deredas, Lead Surfacing Artist at Axis Studios: Hello, I’m Sebastian and in 3D, I mainly take care of textures and shading. When going to see a movie, I’d rather choose Andrei Tarkovsky than Michael Bay, I happily exchange the polish chicken noodle soup for Japanese ramen and when commuting, I choose two wheels more often than four.
I graduated in Computer Science at the Lodz University of Technology, with a major in Computer Graphics. The studies were very scientific, so I had to get grips with maths and programming. This is where my adventure with the 3D world started.
Back in 2011, I modeled and textured a BUCKET – you have to start somewhere. Together with a group of hobbyists, we started creating an RPG game. Apart from learning many 3D skills, I also was taught to never choose an RPG game as the first game project of your life. After graduating from science studies, I decided that for contrast, I would also enroll in typical art studies, and I chose the Academy of Fine Arts. There I had the opportunity to create a few personal projects, which expanded my portfolio.
During my studies, I managed to get my first job in the industry at the Ortografika studio. I dealt mainly with branding, typography, motion, and sometimes also 3D. You might think that 2D designs are a long way from 3D character look development, but this is not exactly true. Working in graphic design taught me a lot about composition, respecting the letter, design processes, and even working with a client. I think it was a perfect start, and it couldn’t be better.
Sometime later, I joined Platige Image, and there, I focused strictly on creating 3D characters (and sometimes more visible or demanding props as well). In fact, it was where I made my whole way up the career ladder, from a junior position to a Lead of a team, working on trailers for clients such as Ubisoft (The Division, Rainbow Six, For Honor), Activision (the Call of Duty series), 4A Games (Metro Exodus), Sega (Total War series), Techland (Dying Light 2), and many more. I also had the pleasure to work for Netflix, on the first and second seasons of the Witcher series, as well as one of the episodes from the first season of Love, Death+Robots (Fish Night). Currently, I’m a Lead Surfacing Artist at Axis Studios, and I continue my adventure with 3D characters.
Peter Nowacki, Lead Surfacing Artist at Axis Studios: When I was a child, a friend of my mother lent me The Hobbit, written by J.R.R Tolkien, and, believe it or not, this was the first thing that directed me to my career path. I dived into stories about hobbits and elves for many years, then I discovered the Dungeon and Dragons universe, reading more books and playing more games. You probably should ask, where the whole 3D is then? Let’s put fantasy aside for a while.
As I said, I played a lot of games when I was younger, mostly RPG and FPP. Speaking about shooters, as you may guess, Quake III Arena and Unreal were my favorites. It was really surprising that many years after creating my first level in Unreal (yes, the one from 1999) I got a great opportunity to lead character surfacing for a Platige Image project called KOALA made in Unreal Engine 4! Coming back to my fantasy worlds, before I understood what 3D really is, I met PaintShop Pro and created my first photobash image for a fantasy forum on which I was super active, and it became the official forum banner.
After that, I discovered Photoshop. I started creating digital collages, but to achieve better and better results, a touch of 3D was needed, and this is how I started to use Cinema4D. During this time, I started college, where I learned Maya.
My first job was in an advertising company where I was working as a motion designer but also as a web designer, which was truly a nightmare. Working hard after hours to build my 3D portfolio, I took a chance and sent my portfolio to a well-known polish design studio called ArsThanea (Nvidia, Ubisoft, Disney) and… I got a job, and back then it was my dream job. I met many wonderful and really talented people there (I still have contact with many of them, and we are even co-working!) and developed my skills in 3ds Max and V-Ray – mostly focusing on general skills.
After a couple of years, I became a Lead 3D Artist, and then I began to seek to develop my career again. I moved to Platige Image, where I was creating cinematics for companies like Ubisoft, 4A Games, Activision, and Netflix. After Platige Image, I joined Axis Studios, where I started working as a Surfacing Lead in the character department, creating cinematics for clients like Blizzard, Microsoft, and Bungie.
Working on Love, Death+Robots' Mason's Rats Episode
80.lv: How did you become a part of Mason's Rats production team and what were your tasks?
Sebastian: It was one of the projects that I had the opportunity to work on at Axis Studios. On my part, it was four months of work, with the first two months as a Surfacing Artist and then the second two as a Lighting Artist. My job was to create textures and shading of clothing for the main character – Mason.
Additionally, I also did the textures and shading of a few smaller things – the guy who delivers a new robot to Mason and the accessories that some of the rats are wearing. I was also responsible for lighting in almost the entire second scene, which is around a dozen shots where Mason enters the barn and kills a rat. The person responsible for the master lighting of this scene was Pawel Szklarski and using that as a base, I did the lighting in all of the other shots. It was a huge challenge for me and a great piece of knowledge that I hope will bear fruit.
When it comes to the organization of the character team – at Axis, each person is responsible for one of the creation stages, it’s either modeling, texturing and shading, or grooming. Sometimes, these roles are intertwined, and one person performs several tasks, but in our case, the majority of work was divided into these three stages.
Peter: Back in the day, I was dreaming of creating cartoon characters with a realistic feel of the material. I was always inspired by stop-motion style 3D movies in terms of how detailed the characters are (for example, Coraline or Frankenweenie), so I was thrilled when I got the opportunity to work on Mason’s Rats at Axis as a Lead Surfacing Artist!
What’s more, after a few months of work as a Surfacing Lead, I got another opportunity to work as a Lighting Artist and light a couple of shots, which allowed me to see all the shaders working nicely in different lighting situations.
We had a brilliant team for this specific character. The model was done by Bojin Shi (led by Alex Stratulat, who is Axis’ Character Team Supervisor as well), groom by Hamish Mitchell (led by Camille Fourniols), and surfacing by Sebastian and me.
Texturing Mason's Clothes
80.lv: Please tell us about texturing the clothes in Substance 3D Painter. Do you prefer using procedural generators or do you paint a lot of details manually?
Sebastian: Generators are, of course, wonderful, they make work easier and faster. Thanks to them, we are able to create quite impressive and complex materials in a relatively short time. I believe they give the best results on very dirty and damaged objects. We don’t pay that much attention to the individual details of these, because just the amount of dirt and scratches affects the complexity of the material to such an extent, that we subconsciously perceive the item to be more realistic.
The problem starts with cleaner objects. If we take the main characters which are often visible on the screen and have big closeups, we have to change our approach and adopt the rule that every detail matters. In such cases, I put generators aside. Of course, I did use them sometimes, but I tried mixing them with the next layers of textures, like surface imperfections textures or even the standard grunge maps from Substance 3D. Many of Mason’s details are painted by hand. I used to wonder how a given stain or a tear was made and what story may be behind it. This approach makes the character authentic. It’s not a challenge to use a dirt generator and make a whole hat dirty. The point is to paint THE specific stain – in the right place and of the right shape, one that appeared similar to how it could have been done in reality.
Before you attempt texturing, it’s good to remember to find good references. If we are not dealing with a highly stylized project, our job is in fact very imitative and is about getting as close as possible to what we see in photos. Of course, the artistry aspect is also important, but it's better to recreate the references than improvise. For gathering references, I recommend the software PureRef.
When it comes to Workflow and settings of Substance 3D Painter, we base on texture sets where the particular UDIM groups correspond to given types of materials (for example metal or plastic) or just given elements of the character (like shoes). Based on that we later generate shaders so it makes it easier to navigate between substance and shading. Apart from the usual channels we also use Specular Level (in order to control the intensity of specular in a shader), some additional channels with masks, and next to the Height Map, we also have the Displacement Map where we place elements that we want to emphasize in the displacement shader.
I try to maintain order in Substance 3D. Of course, it’s not easy to name each layer and everyone who works with textures has in their files something that goes like "Fill layer 51 copy 7". But I always try to work with the approach that maybe one day someone will have to open my file and change something – I wonder whether that person would have an idea of what’s going on. With more complicated characters, I also color the groups.
Taking Mason’s shoes as an example, I will show you how I created their material from scratch. I began by defining the basic elements – the main rubber, the buckle, and the sole.
Then I added more color changes and discoloration.
I believe it’s one of the most important aspects of the initial work on a given material. I set the layer to passthrough, use the HSL filter and slide the hue by a few percent. I fill in the mask with a grunge map or a few of them mixed with each other. I create a few of these layers.
Sometimes I also add the Level filter and darken or brighten something by a few percent. These small changes make it possible to have the material more realistic already in the beginning. It’s very rare that a material in reality is of a very solid color with no deviations.
I differentiated the upper half of the shoe and added seams.
I added one more layer of details – scratches, rubber chips, thickening, and abrasions.
I also like to add very small, light particles to many elements, something like dust – for this, I recommend surface imperfections maps.
Next, it’s time to add more types of dirt. Even though the shoes were very dirty, I drew most of the main stains by hand with different types of brushes.
I’m adding a detail that resembles a logo that was in the concept and some other, smaller details like cracks in the material on the buckle or a crack in the rubber near the hole.
I also add the sharpen filter on top and a set of different layers, which differentiate the material in a very subtle way. Most often, these are changes in the roughness/specular levels.
As a final step, I check the colors with a PBR validator. With the right values, it is later easier to control the colors and luminance in the shader.
Below you can see some of the channels of the finished material.
Setting Up Clothing Shaders
80.lv: How did you set up shaders for clothes in Arnold?
Sebastian: For this project, we used Arnold in Houdini. The shading here was not as complicated as it may seem. I always try to add as much detail as possible during the texturing stage in order to avoid making very complex shader trees.
The whole character consisted of about 25 shaders. I divided them into 3 categories: skin, clothes, and groom. The person responsible for skin-related shaders was Peter, so he will tell you more about it.
Most of the time at Axis Studios, we use our own shader that is based on standard_surface, which we customized to fit our needs. Unfortunately, I cannot share how exactly it looks, but I will describe what elements it contains and what I added based on one of Mason’s clothes materials.
Below you can see the finished shader of the tartan material that is present on Mason’s pants, scarf, and hat.
Apart from connecting the maps from Substance 3D Painter into the right channels, for this shader, I also used the diffusion type of SS. Remember that randomwalk needn't be used everywhere. Of course, it works great for skin shading, but with geometry types like clothes, Diffusion works perfectly.
I also added a bit of sheen, of low roughness values. I broke it down with an additional mask so that it’s not equally visible on all of the elements. Thanks to this, we achieve a very subtle glow on the edges.
I think that the displacement deserves a lot of attention as well – it is the heart of the shader in a way.
Now, I will describe some of the things that I added apart from using the displacement baked from the high poly model. As I mentioned before, in Substance 3D Painter I created a mask in the Displacement channel. Thanks to that, I could additionally emphasize some of the elements.
I also add a map that slightly accentuates some of the fabric weaves. I used a plus operation with a 0.025 value.
With this type of clothes, I also put maps from TexturingXYZ in the displacement. XYZ offers not only great maps of faces but also other materials. Here, I used “microFabrics cotton #05”. I add the XYZ map, usually on low values, using a plus operation. I don’t use this map on the whole object – I also use masks here.
I also often export the bump channel as 32-bit EXR and I add it as a displacement using a plus operation with low values.
We create separate masks in Substance 3D Painter for dust, dirt, and blood. We also create separate shaders for them and then connect these by using a layered shader, mixing with the main shader. This solution gives us more control over the shader and quite good final effects.
Adding Details via Grooming
80.lv: You also created a groom for clothes and different details, right? Could you share details on the workflow?
Sebastian: That’s right. Our groom team prepared a script that makes it easier to add such elements (greetings to Camille Fourniols!). I cannot reveal what exactly is in it and how it works, but thanks to this solution we don’t have to bother the groomers that we would like to add some small hairs on a piece of clothing – we can do it ourselves instead.
The groom team can then focus on the main and more visible hair. The additional advantage of this solution is that we have a better overview of what we can do in the textures and what must be added in the groom itself. For example, I use groom for the pilling on the edges of the material instead of going through the trouble of creating them by using masks in displacement. What’s more, in the texture I can prepare space for a particular groom – for example, threads sticking out of a tear in the material.
Most of the materials used for Mason had a few kinds of additional groom:
1) A very short fuzz, scattered throughout the object, with the material taking its color from the Albedo texture.
2) Slightly longer fuzz, less dense, scattered in smaller quantities, and of a lighter color than the short fuzz.
3) Longer threads sticking out of the places in the texture with tears in the material.
4) Fabric pilling that happens with long use.
As an example of the unusual use of grooming to complement textures and shading, I can point out that the tobacco sticking out of Mason's still-unlit cigarette was done just that way.
I used the groom as a support on many of the elements. But apart from the smallest fuzz scattered throughout all of the objects, the rest of the groom was masked. For example, there is more fuzz in the upper part of the scarf, because it’s where it wears the most by touching the neck. The suspenders have more hairs in places where there are movable parts. The vest has a different type of fuzz on the inner part because there is a slightly different material. With each element, you have to think about where such things may occur.
Of course, I also couldn’t miss the threads sticking out of the socks.
Working on Mason's Skin
80.lv: Could you discuss your work on the skin? How did you work on initial textures and approach colors here?
Peter: During this project, we had one serious goal – we tried to avoid the uncanny valley at all costs, which took a lot of tries and a lot of going back and forth.
Our main base came from TexturingXYZ, keeping in mind that we would like to avoid super realistic looks. Using Photoshop and the “remove noise” filter, I reduced the overall detail of it, and then in Substance 3D Painter, I started working on color regions, adding a bit more cartoonish look and trying to match our concept.
Starting from the large discoloration in the nose and eyes area, I started adding more and more finer details. We were trying to use as much as possible from Substance 3D Painter, so I was creating not only diffuse but also a lot of additional textures like Specular, Displacement, and a lot of masks which helped me to achieve the best result without re-exporting anything from Substance 3D Painter. The next step was to add veins that are almost invisible but give a bit of depth to the skin.
Next, it was time to start building the depth of the Albedo pass. I was trying to paint places that should be lighter and darker, differentiating eyes and nose regions, still adding procedural spots and noises, using different tileable textures from Painter, and in many cases using tri-planar projection. Keep in mind, that many tiny details will disappear in SubSurface Scattering, so that is why I was exaggerating them a bit.
In order to build the shape of the face a bit more I added more color in the eye sockets, nose, and eyebrows. Also, I slightly helped the SSS by adding a bit of red color to the ears.
Last but not least, I added even more details like small skin tear-offs (which will be connected as well to the displacement layer system) and a bit of stubble, to help the groom sell the look.
This is how the shader version looks finally in the Substance 3D Painter viewport.
And here are a couple of textures that we are using in our shader.
80.lv: How did you set up the final skin shader? What layers did you add on top to get the right realistic feel?
Peter: For Mason’s Rats, we decided to use shaders designed for realistic projects. The shader is designed to support multiple layers on top to keep it as much similar to real-life situations as possible, as well as to support artists with a lot of masking systems that allow us to tweak roughness during rendering in Arnold.
In addition to that, in order to achieve a satisfactory effect, we used tiled maps from XYZ as well as a displacement map from multimap XYZ with reduced overall details, which were done by using a similar technique as with the diffuse. The base of everything was, of course, the displacement, made by the Modeling Artist – Bojin Shi.
We also see Mason in a few stages – clean, right after the blood hits him, and at the end of the battle, when he wipes it off. All of these stages required masks from us in order to create good-looking blood (which was on Sebastian’s list of tasks as well).
Here is the skin-only version without any groom on top.
The shader is a bit more complex, on top, there are also a few dependencies regarding blood which were driven by animation parameters.
We were also using a tension system which allowed us to slightly change the colors of the textures in order to achieve a better and more natural-looking stretched or compressed skin.
80.lv: What were your main challenges during the production?
Sebastian: I will comment mainly on Mason’s texturing and shading. A big challenge was the number of close-ups of the main character and the level of detail that we wanted to achieve. The episode is around 10 minutes long and Mason is visible there from basically every possible angle and from every possible camera distance. It’s not easy to create clothes, patterns, or the bump/displacement scale that looks great on a portrait close-up and somewhere far away in the background.
One of the elements that we had to approach more than once was the dirt. First of all, it's difficult to balance the amount of dirt so that you don't overdo it or create too little. Secondly, the type of dirt was important as well – Mason is a farmer that lives on a farm and wears his clothes for a few days in a row, so we had to create both the old dirt as well as the newer stains – ones that are fresher and muddy. It took several tries before we managed to create something that met our expectations.
Peter: From my leading point of view, the most challenging thing is always to keep consistency between assets and characters. How much dirt they should have altogether, what should be clean and what not, how much specular everything should have – these are questions that we ask ourselves with every project. Fortunately, we have designed a layered system for dirt that we can control via masks done in Substance 3D Painter, and then we set up a decent power of specific dirt over characters.
As Sebastian mentioned, Mason is a farmer living his life on a muddy farm, but for example, Miguel is a Traptech’s salesman and he has to look clean. But everything in real life has a bit of dirt and dust, right? To sum up, in my opinion balancing between the clean and the dirty character is key, they need to look like they are from the same story in the end!
I must say that ever since Substance 3D Painter began to support ACES it is much easier for us to keep consistency between Substance and Arnold renderer. Our renders are almost identical to what we can see in the SP viewport which is really helpful while feedbacking and predicting how it will look in the render.
80.lv: Could you share some tips for beginners willing to get into similar AAA-quality projects?
Sebastian: I think that a very important aspect of working in the broad look development area is to accurately observe the things that surround us in the real world. Except for the highly stylized projects aside, in general, we aim to achieve realism. While working on textures of a given material, in my head I try to divide it into layers and recreate them in order, using the bottom-up approach. With shading I think about how the layers of the material behave in the real world – how do they absorb the light, do they let it go through, are they soft, hard, shiny, see-through, etc? We can work on our observation skills basically all the time – the next time you take the bus you can analyze what the plastic handle that you’re holding is made of. Same for the ticket validator which you just used to validate your ticket. This attention to detail gives you a boost in 3D. You start to notice more and more things and this makes you one step closer to achieving realism. Each created material is a lesson and each will give you a piece of knowledge that you will be able to put to use while working on the next project.
Peter: For me, the most important thing in artists who are looking for a Surfacing Artist role is how they see things. If there was to be a coursebook for this it would be called “The Art of Observing”. It is not important how much software you know and how many details there are in your textures, it is important how it looks in the end, if details are in the right places where they should appear in real life or if the shape language is working fine.
Besides super important words from Sebastian, I think that understanding composition and shape language is also really important in these fields. What I can recommend for everyone is definitely a brilliant book called Picture This – How Pictures Work by Molly Bang. And of course, the well-known Color and Light by James Gurney to at last understand how global illumination is affecting the objects which we are observing. Let’s observe the world around us together!