Hi, my name is Virendra Pratap Singh. I am from Agra. A famous city in India that lies on the bank of river Yamuna. Agra is well known for its historical buildings and Mughal architecture. It is home to one of the seven wonders of the world Taj Mahal.
I have been a video game lover since my childhood and have always been a big fan of Tomb Raider. After getting my diploma in Video Game Art and Design in 2006, I started my career with Kuju Rail Simulator (released on October 12, 2007) as a junior 3d Artist. In the subsequent years, I got promoted to a Lead and then to an AD in Dhruva Interactive. Dhruva was one of the oldest gaming studios in India. During my career, I have worked on many fantastic game titles. Overkill's The Walking Dead, Marvel's Spider-Man (PS4), Prey, Batman: Arkham Knight, Arkham Origins, Mortal Kombat X, MotoGP and the latest addition to the list Days Gone are just a few of them.
When I first started working, I began as a 3D generalist on props, weapons, vehicles, foliage, and buildings. In the early days of my career, I had to work on a very low memory budget. I still remember my first asset, which was a railway bridge. The asset had a single texture sheet of 128X128 and consisted of only about 100-150 Tris. Over the years, I became specialized in creating hard-surface assets, such as props, weapons, and vehicles.
I have always believed that to continue to be a part of the mainstream industry, one needs to keep updating themselves and learning new processes.
Gathering the Reference
In one of my recent projects, we had to create a few statues. These statues needed to be aesthetically accurate because of their religious background. While I was trying to find more information on this subject, I came across some images of the temples in Ubud.
Ubud, in many ways, is the cultural hub of Bali. It is known for its religious sites and beautiful temples. Most of these temples have Balinese Guardian statues near the entrances. That is when I planned to make this asset.
During the reference collection, I found multiple images of the idol. Most of these images showed a grey statue precisely made with hands using advanced tools while some were extremely colorful and disproportionate consisting of imprecise shapes. I chose the latter references since I thought they were more in consistence with the old construction techniques and had impressive visual aesthetics.
The idea behind collecting these references was to create a game-ready asset of an idol placed in a temple. The devotees would pray and present offerings called Canang sari. I use PureRef to organize the images and I would say it is a simple and amazing software to organize the references, the whole bunch can arrange quickly by drag and drop and save your scene.
I started with the block mesh creation using Zsphere in Zbrush. The initial idea was to create a T-pose mesh and use the transpose master tool to pose the model later. But considering that there were proportional differences on either side of the symmetry, I decided to sculpt them separately.
Once you start working with subdivisions, it becomes challenging to make changes to the proportions and dimensions of the model. I have seen many artists struggle going back and forth in the process.
Even when I am working on hard surface models, I prefer to create a simplified block that conforms with the final proportions before adding the supporting edges.
Now the challenging part of this asset was that it is entirely asymmetrical. To make it easier, I decided to divide the model into two parts, head and torso. Whenever an artist chooses to split an asset which is supposed to be a single element, the joining point of the two parts becomes questionable. Luckily, this statue has a big necklace around the neck which made it easier for me to perform the split.
I used 3ds Max for the creation of offerings and other objects. The idea was to make the primary model with appropriate proportions and simplified shapes. In my experience, it is essential to chalk out the overall dimensions before moving on to the High-poly creation.
High poly & Source model
Once the basic shapes were complete, I moved on to the secondary details where I covered all the forms and elements except the micro-level detailing. I worked with dynamesh, which allowed me to redistribute the geometry evenly while I quickly sculpted out the details.
As you can see, the lower body had no geometry for the clothes, but I created them quickly by using the move tool and simply stretching the mesh.
For the carvings, I used a heightmap that I quickly created in the 3ds Max. Merging the base and converting it into dynamesh helped me get the combined mesh, which is how it would be in real. My preferred brushes for sculpting are Clay-Buildup, Dam standard, and H-Polish which enabled me to give a gauging trowel like impression on the surface. I also prefer the trim dynamic when it comes to creating concrete/stone edges.
Once I was done with all the shapes, I started working on the surface level details like cracks and damages. I generally avoid adding the noise details in my model at the high poly stage. Instead, I rely on Substance Painter for micro surface details, and that way, I have much more control over the surface level texturing.
Every so often, I would check the model from a distance to ensure that everything is in place. This part is helpful since sometimes, you need to increase the depth of certain shapes and designs to make sure they stand out. In my case, I noticed that the cracks that I had sculpted seemed hairline like and faded when seen from a distance. So, to make them more pronounced, I manually added the depth to the damages.
The creation of the low poly model is the stage where you have to understand the value of every edge because every edge will impact the calculation. It is therefore advised to use limited triangles. Now the question is, how do we determine the ideal mesh for in-game geometry? As I mentioned earlier, when I started working in this industry, the poly count limit was very less; however, over time, that limit increased drastically. It isn't possible to assume or define the exact poly count for any asset since we have to keep several factors in mind. Factors like technology, gameplay, priority level and the dimension of the asset. The same rule applies to the polygon distributions across the model. It is imperative to keep this into consideration so that you can add more geometry where it's needed and simplify the less visible areas.
For this asset, I followed two processes. I used the decimated version of the High-poly model for the statue and re-topologized the mesh for the offering. The decimated mesh is a quick way to make low poly meshes for organic objects such as rocks, statues, and cloth. However, an adequate level of refinement is required to make sure there are no de-generated faces, long triangles or lousy shading. Another thing to take care of is defining the edges for UV seams because the decimated data gives irregular mesh flow. Using it as it is will result in uneven zig-zag seams. In such a case, it’s better to refine the geometry to make a regular edge flow.
Once when making a high priority asset for a 3rd person shooter game, I used a poly budget of maximum 10k tris.
As I mentioned earlier, the low poly mesh for the offerings was created using re-topo in 3DS Max. Since they are small in size, I ensured that I dedicate a more modest poly budget for them. I devoted a slightly higher poly budget to the flower, considering it was to be placed on the head and the head is a point of focus for this statue.
Unwrapping is the most challenging and creative stage. It requires a little extra attention because it impacts on the quality of textures. A good unwrap should take care of overlapping, pixel padding and maximum use of UV space by following the required pixel density of the project.
There are cases where the pixel density needs to be unevenly distributed as per the camera angles or visibility of that asset.
E.g. for an FPS shooting game, when creating a gun, the gun sight should have higher pixel density when compared to the muzzle since it's closer to the camera.
To extract the input maps, I used the baker in Marmoset Toolbag. It is fast, efficient and easy to use. The paint option allows an easy solution for fixing projection errors. The best feature is creating Ambient Occlusion maps in very little time.
I baked the Normal, AO, Curvature and Thickness maps. Apart from that, I baked the position map in Substance Painter. I made some adjustments to the shadow fall-off in the AO and curvature before importing them into Substance Painter.
Texturing has always been my favorite stage, and the Substance Painter makes it even more interesting and trouble-free. The procedural workflow is something that provides you with a lot of freedom and the possibility to go back and change things at any given point.
I had collected a few more compelling references for texturing, which I thought would be more relevant to the idea and representation of the colorful culture of Bali. Most of them showed statues that were highly saturated and glossy, and the surface gave an impression of multiple layers of re-painting, which perhaps happened multiple times at the time of the festival. Moreover, the base area had more grunge/dirt accumulation in comparison to the top. I thought of chipping off the paint in places and making the concrete surface visible underneath for better storytelling.
While I was choosing the color palette, I decided to keep the ornaments not metallic golden like in the references above because it gave a lavish and well-maintained look. I used simple yellow paint with some light and dark shades to highlight the ornaments instead of precise gold. It was quite a challenge to balance out the colors to make them look sensible and meaningful. I tried to create harmony so they would compliment each other from all sides. I used red for the body and the rest of the elements I painted with yellow, green, blue and white color.
It took me a lot of time to decide which part should have which colour so as not to clash and look discordant.
I also added many small patterns and height details in Substance Painter. Had I added these details in Zbrush, it would have been challenging for me to get the selection masks.
I started the texturing using primary glossy colours, and then I started adding different shades within the colours. E.g. the red colour alone has three tonal variations in the base colouring. To find out the colour scheme as shown in the image below, I recommend you use https://www.schemecolor.com/
Adding multiple shades of a single colour helped break the flat and even look of the texture and made it resemble closely with the real world-references. This allowed different tones for peaks and valleys just as it would due to weathering for any real object.
The difference created was not significantly visible at first glance but gave a more natural colour to the surface. The image below shows various shades of the base colour and the same is reflected in the roughness map as well. These variations were achieved with the help of Curvature and AO maps.
Once the base got completed, the next process was to add quick manual brush strokes in some areas to make them unique and attractive. Moving forward, I worked on trying to make the statue look aged and applied generic dirt/grunge with the help of AO and Position map generators. I also added details like oil stains, and damage to the surface before editing the values for these generators.
Here you can see the different masks used for various details.
Here you can see the final look of the textures. The colors are respecting the albedo values, and the roughness map has decent variations denoting different surfaces. Adding microsurface level details to the normal/height maps can be extremely helpful in controlling the surface gloss values. It works amazingly well when combined with the roughness map.
In the end, I made a few more changes to make the asset look visually appealing. I used the light generator option (vertically top to down mask) to add directional variation in the color levels and roughness values for the red areas.
The texturing process for the offerings followed a similar process except for the additional transmission and alpha maps. I wanted to make them look fresh and pristine except for the dry brown leaf that had rice scattered on it. I used the alpha to create the smoke coming from the incense sticks.
Surely there will always be a scope for improvement and storytelling in an asset, but it is crucial to know where to stop or else the task will become endless.
I always like to spend a decent amount of time for the presentation of my asset to make it look more captivating. Doing that helps demonstrate our creative skills in a better manner. At last, I added some more assets like foliage, umbrella and the ground so that it would look like a complete scene. The statue alone did not seem to look as appealing.
For rendering, I used Marmoset Toolbag, which is a fantastic tool for a quick rendering set up. I used one point light as a primary light and another point light for trim effect in the opposite direction, which was blue. I reduced the brightness of the environment map and increased the child brightness to make my point light strong. The global illumination is an amazing feature which quickly gives you the desired result. I also added the fog, which worked quite well with the bright background and vignette. The foliage and offerings using a transmission map which helps them to give more natural looks.
The following images are the final screenshots of my artwork captured in Marmoset.