Peacock Room – Material Breakdown – Shyamsagar
Introduction and Inspiration
I am Shyamsagar S, Team lead for the Assets department at Technicolor Games India. I have been in the industry since 2011 when I left my job as a software engineer to work as a full-time 3D artist. I have always been passionate about art and I love telling stories. I am a self-taught artist and learned 3D/2D with the help of online resources as well as some of my friends and colleagues. My computer science engineering background has helped me a lot with the analytical mind and problem-solving skills required for 3D art. I have worked on modeling, texture creation and look development for assets both for production and games, with a more emphasized career in game art moving forward.
Since past few years, I have been involved in making textures and materials for a few popular AAA games. This is when I was introduced to Substance Designer, realized the power of procedural material creation and how fast we can create beautiful materials and supporting textures with quick iterations without affecting artistic freedom. The idea of doing a material-driven personal project came to my mind. While looking for a reference, my girlfriend suggested the intricately designed Peacock room of Castello di Sammenzzano in Italy. I really like the idea and found it challenging. Instead of replicating the whole room, I decided to use my imagination to recreate my version of the Peacock room. In this article, I will walk you through the process of texture and material creation from my personal project, “The Peacock Room”.
The key to any good art is observing what’s around us, as most of the good ideas and decisions comes from it. This makes collecting reference really an important part of the process, the more the better. We should also make sure to filter organize and be precise to our requirements. Eventually all this will also help us in building a mental library for future designs.
Here are some of the references I collected and I usually categorize it into primary and secondary.
There are a lot of materials involved in the entire scene, I will be going through few of them. You can find an overall break down of the other materials here https://www.artstation.com/artwork/eJzlvZ
As I mentioned before, reference is the king. Collect as much reference as possible, get inspiration from any art resources at your disposal. I start my material creation by thinking in large and small shapes, sculpting out the volume, adding in reflection (Roughness/specular/metallic) to get the initial material properties. Then I move into adding the Color/albedo and giving it the final polish, which includes macro and micro details. Always make sure not to introduce noticeable or obvious repeating patterns when you deal with tile and trim materials. Also keep exporting and checking in your final render engine at each stage, in my case it is Unreal engine for this project.
Planning a Material
This environment is mostly planned for tile and trim textures, so planning from the initial stages is crucial. A simple block out of how the tile or trim texture maps would turn out, what resolution to go with, how many materials, and finalizing on a Texel ratio are a few things to begin with. This will give an initial idea to start with.
Wood Trim Material
All the wood details in the scene is done through a wood trim and wood tile material. Here I will go through how the wood trim is made.
- I start with the shapes for the heightmap for each trim mostly using the shape nodes, mirror, bevel, edge detect, Curve etc. There are always multiple methods to approach a shape. I would suggest going with the simplest ones. For complex shapes, I went for the SVG node and drew in the base shapes with a color so I can also use it as an ID mask.
- This is the complete graph. Breaking down the graph into parts makes it easy to understand. Try to name and organize the graphs as much as possible, this would help in revisiting, reusing making changes, etc.
- Each trim I planned to use in different wood assets within the scene. This initial planning is done so that with one trim we can cover all the required details for the scene as per reference and we can use it in different ways to give more uniqueness and variation to the models. That is the trim intended to use on a door can be used on any other parts which can use a similar detail.
- Here you can see the shapes created for the painted etching designs used for the doors
Door Trim Shapes.
Creating the Flowers and leafs for the vine design.
Trims for the tables, shelves, etc. Here a simple horizontal rectangle shape is used with bevel and curves to carve out wood ledge.
Making the trim that would be used for window frames.
Other unique and specific ornamental designs that aren’t tileable.
Here I’m adding in edge breaks and other macro and micro details like wood grain, dents, etc. Here mostly noise, slope blur and directional warp is used to break the shapes and make them look more natural. The histogram range node is added to get a range for the heightmap. Mostly, I go for the default base value of .5. Pushing the white value above or below .5 will give different heights for the shapes as required. Then convert it into a normal map. This is an iterative process till we get the desired output.
For the albedo/color, it’s about finding the right gradients and using noise, grunge and the base masks derived from the shapes, height map, curvature, etc. Then layering one over the other to get an accurate output according to the artistic direction we are looking for.
Creating the Roughness map.
Then it’s about exporting all the required output nodes. Since am using a composite texture/packed -p (Red channel – Roughness, Green – Height, Blue – Metallic, Alpha – AO) in Unreal engine an RGBA merge node is used to merge the maps into the RGBA channels. Also, it’s a good practice to set a proper export preset through the output nodes so that it’s easy to export and check in external render engines. You can also use the PBR validator node for a PBR sanity check.
Texture map 2048×2048.
An example of how the material is mapped to a model.
Stained glass material
I wanted a stained glass of a peacock in the scene so I decided to make one for the glass of the door. This was a fun material to make.
In order to keep the graph less cluttered and for better control I made two subgraphs. One for the background “Stained_Glass_BG” and the other for the peacock foreground with the final merge “Stained_Glass_01”. Splitting graphs would also be good for better memory management as you would not need to load all the nodes at once and can avoid crashes.
For creating the vine, I started with a simple cell node and derived the result using some warp and edge detection techniques.
In creating the flower, here I started by making a shape by drawing it into an SVG node. Using different color ids will help in isolating and controlling the shapes along the process.
Albedo creation. Here I was looking for bright and vibrant colors and gradients.
Roughness and metallic.
The peacock is a complex shape, planning your designs early on is quite important here. To achieve a good result, the easiest way is to draw in the glass pattern using the SVG node with a color ID. Then mask is derived for inner glass, edge borders etc. and the desired output is achieved. It’s better to stay with large to medium shapes for better readability and control.
Then finally the Background and foreground material is combined. Here I just used a simple blend node with cut masks then tweaked accordingly till I was satisfied with the result.
Final Texture 2048×2048.
Making the pillar trim was another creative task. Here I was trying to completely map the details of a pillar though one material.
Here again, the material is divided into two tiles and 1 trim subgraph and then all combined together. Here you can see a general breakdown of how this material is built up.
Here the fish scale design is made by making an id mask then creating the height from it.
What we are trying to achieve here is painted designs on the pillar with some peel off and damage.
This is all the horizontal trim textures for the material. As always starting from simple shapes, ID mask and then adding in all other macro and micro details.
Finally, all the materials are combined “Pillar_trim_01”. I used a material transform to get the proper tile for the square tileable materials and a multi-material blend node to merge them all together.
With the final texture 2048×2048.
Pillar model and mapping the texture.
Vertex paint Shader (Maya to Unreal)
To add extra details to the trim and thje tile materials like color variation, dirt, dust and drip I created a vertex paint (VP) shader in Unreal. I wanted to do the vertex painting in Maya because I had more control on selecting vertices, faces etc. To add and mix the vertex colors, I also created a vertex paint shader using Sting ray PBR in Maya.
The parameters are similar to the unreal VP shader. 80 to 90 % of the vertex color pass is done in Maya i and the final touch in unreal. This also helped in adding, moving, removing vertex and adjusting UVs as per our vertex paint requirements to the model. I would advise planning the model from the beginning with the required vertex at the required places if using a vertex paint shader, keeping in mind the asset should be also optimized so it works smoothly in the engine.
- Vertex paint shader in Unreal. Here you can see the bronze trim material
Vertex paint shader created in Maya with Stingray PBS similar to unreal parameters.
Here you can see the vertex paint process from Maya to Unreal.
I created the vertex paint mask in substance designer. Here you can see an example of the masks used. Any type masks can be used in the channels to get the desired output.
For the peacock room, I wanted to add a human presence. I designed a statue and built it from the scratch as a study for character design, anatomy and trying out different material creations in Substance Painter. I named it the Peacock King.
Below I also have images of the ZBrush sculpt & Digital sculpt to game-ready.
Texturing in substance painter was quite fun and satisfying. I made three variants bronze, marble and wood. Here is a breakdown of the bronze variant in substance painter.
Now comes the props for set dressing. The designs chosen were to reflect the character of the king, enthusiastic and an explorer. I also wanted it to look ancient and royal.
The process was quite straight-forward.
- First, all the props were planned in such a way that a set of props can share the same texture page. This reduces the number of texture maps and memory usage in the engine. For example, here you can see the book back binders vary but the side binders for a few are the same and overlapping.
Each part checked for model/UV cleanup is named properly with prefix so we won’t get any artifacts while baking in substance.
I then started creating the textures.
Here also for subastance painter an export preset is setup to export out the albedo, normal and packed (Red channel – Roughness, Green – Height, Blue – Metallic, Alpha – AO) texture
I hope this has given some insight into texture and material creation. It was quite a challenging project which taught me a lot and helped me to improve my skills. I enjoyed experimenting, learning from failures and keeping a positive mind. I want to say huge thanks to wonderful artists such as Danial Thiger, Vincent Derozier, Pauline B, Ognyan Z, Scott Eaton, Dorien Iten, Raf Grassetti, Pablo Muñoz Gómez, Sandis Kondrats and Uldis Zarins and many others for sharing their knowledge and providing excellent study resources. I guess that’s it until next time, be safe and keep creating art!
You can find my art at: