‘Cave Temple’ – Composition and Silhouellete planning – Shiv Rathi
Hi, my name is Shiv Rathi. I am currently working as Senior Environment Artist in Rockstar Games, Bangalore India. I have been working in the games industry for 10 years now.
After completing my 12th grade, I achieved a diploma in Games Art and Design and was lucky enough to get a job at Dhruva Interactive.
So far it has been a great journey of learning, I have had the chance to work on many amazing projects/titles like:
Forza series, Sniper Ghost Warrior 2, Enemy Front, Forza Horizon series, Prey, Word of tanks, Overkills: The Walking Dead and a few unannounced titles. I started in the industry as a Vehicle Artist and over a period of time, I moved into Props and Environment Art. Since then I have loved learning environment art day by day.
About the Project
Recently (a few months back) I played Uncharted: The Lost legacy, I was very inspired by the artistic mood of the game and thought of making a small environment following a similar art style. I am also big fan of the Tomb Raider series, especially because of the amazingly lit scenes.
So first off, I collected Indian temple references and then added my own interpretations to create required scene composition.
I tried to get as much inspiration from real life as possible but did not follow it 100% in my scene. I exaggerated some details like, keeping assets scale, foliage size and pushing cliff details slightly bigger. I also optimized a few details which would make the scene too noisy, the idea was to keep readable details and not have too much distracting clutter.
This project was a little overgrown cave temple built in a forest that has had some human interaction like festivals of worship, primarily The Lord Ganesha.
I have tried to achieve an overgrown environment with the right balance of night lighting and composition. I’ve wanted to work an environment/scene which includes lots of organic assets (cliffs, statues, sculpted trims, stone, foliage, etc).
Here is the final rendered video link:
I usually collect a ton of references when it comes to environment creation, this helps me get a better idea or more inspiration to add small things/details OR pick up any interesting ideas I come across, this adds realism and a story to the scene.
Here is my mood board for the project.
After collecting enough reference, I started working on the block meshes (mostly grey Whitebox) just to get an understanding on how I am going to present my scene.
I always keep these Whitebox meshes very low poly so I can easily edit them until I am happy with my desired outcome.
After creating the basic blockout, I use the layout as a base (will add rough textures and foliage assets to the scene) to do the paint over in Photoshop to check if I am going into the right direction.
I try to take images from my mood board along with google references and paint on top of the blocking mesh render.
There are lots of things that come into picture when you actually try to create your idea into 3D, so this stage is very helpful to avoid lots of back and forth, inevitably this will save lots of time. There will still be some adjustments to make the scene believable and playable, but its all part of the environment creation process.
After looking at my paint over image, I felt like the walls were looking a bit too detailed and gave too much of a noisy feel, I will be optimizing the details whilst I’m on the modeling stage.
The modeling stage is very important and will give you a better idea of proportions in your scene, my scene is following the basic fundamentals of environment art, leading lines and of course making the player focus into the right places.
How you make your assets will also help you understand and plan your workflow. It’s really important that during your block out you have an idea of how are you going to texture your scene, for bigger scenes like this one, you should think about how to optimize your time. By creating trims and tileables that would be used later to texture multiple assets. Although it is difficult to know at this moment how you would do that, we will get a better idea once we have a list down of each task.
I will be working on placeholder textures to get a better understanding of the required textures.
Before jumping to making the placeholder textures, I will be setting up the project with the right naming conventions for all the block assets, this will be very useful once we start working on individual assets.
Also, please make sure that all your transformations are reset and the pivots have the correct position, also if you want to snap your objects (like modular assets). Remember to always keep your objects origin snapped to the grid at 0,0,0.
Once I havea better idea of the scene, mood and sense of scale. I try to map it roughly using tileable textures with different colours to check and play around with the colour theme. This helps me define my scene a bit more and give me an idea of the different colours I will use without spending a lot of time in material creation.
In Unreal Engine you can just use a simple master material for this and set up the entire scene quickly by making instance material.
Unique: assets that needed a unique UV space.
Trim: assets that will be using 1 or more Trim textures.
Hybrid: assets that will have their own UV space but will also use trims on some parts.
Tileable: Asset that will be using tileable textures.
I usually spend some time on this stage to get maximum visual clarity with my scene so I can plan my mesh and texture accordingly.
Creating High poly and game ready meshes:
Now I will take the blockout meshes and start working on actual game geometry since I have clarity now with the unique objects, trim sheets, tileable objects. Also, I have a better understanding of the asset scale against actual human size.
I will start working with the high poly mesh. I usually focus on bigger details first in sculpts because other smaller details might come through material or blend/detail texture. Keeping bigger details in sculpting and smaller detail through material help avoid any unnecessary noise and give alot more control in the shader.
For the tileable part I keep some bevelled uneven edges and bigger mesh damages like cracks and broken parts.
There are some of the main brushes I used in the project:
Trims and Clay brushes: Clay to remove big chunks/damage and TrimSmoothBorder with a Square Alpha to get those hard cuts.
TrimSmoothBorder: Using with noise alpha to get uneven layered cuts.
DamStandard: To make some cracks when needed.
Crumple: Great brush to generate some natural edges to cliffs.
OrbFlattenEdges: For flatten geometry but retain the edges.
OrbCracks and OrbSlashCurve: Great at making cracks.
The Orb Brush Pack is really great for cliff and rock sculpting.
Along with these brushes, I also used a few damage brushes set to add cracks and damage.
Also, since the meshes and textures will be used alot around the scene, I avoided very recognizable details like big cracks or damages. In the end, it is just a good balance between adding details and making those meshes generic enough.
Cliffs and other organic objects will require dynamesh treatment to work further in Zbrush.
Once my bigger details are done, I decimate these meshes in Zbrush and directly import them into Unreal to check if the details and silhouette are looking good. Most of the time I do make some adjustments, based on asset visibility and player point of view.
I have sculpted 2 unique cliff sets, they are scaled, rotated and placed around the entire scene. The top cliff has smaller details as they will are placed around on a larger scale.
Side cliffs are cleaner and have a smoother side as if they have been touched by alot of humans. Many things are placed on side cliff edges like, small statues, diyas, painted art etc.
I gathered a basic Ganesha mesh from the internet whilst also searching references of the statue, I took it as a base and did some adjustments, I then took it into Zbrush to refine it.
I added all carved details, edge chips and the big damages, using all the brushes mentioned above.
All the asset base meshes are created in max and then exported into ZBrush. Walls, pillars, stairs, trims are modeled with clean topology and subdivided in Zbrush to work quickly on, adding edge damages, cracks etc.
So once the high poly meshes are done, I will be working on the low poly creation. I just followed the traditional way to make in-game meshes. You can use your choice of software and workflow, a good thing to keep in mind is to remove any unwanted tris but at the same time not miss out on any interesting silhouette/shapes.
After that, I will be setting up Painter files for baking and texturing. In this scene most of the assets were organic so I used Substance Painter to bake, however, I use Marmoset for bakes that include hard surfaces, machine parts, nuts and bolts, etc. Marmoset also gives a lot of flexibility while baking.
Material Set Up:
As this was an overgrown scene, it would require a good amount of moss layering, I set up an angled base moss shader to get the feel of top covered moss.
I have used my old blend shaders and made further tweaks to add top moss layer and detail texture, I followed an amazing tutorial by Lukas’ Ramblings.
I used a RGB mask set up in shader to optimize the number of textures:
B – Ao
I have created 2 tileable materials (Stone base and a Moss base) in Substance Painter to make use of these globally as base material to start on my meshes.
Trim sheets and other unique baked wall elements were also created by using the stone material as a base.
Moss usage is very generic in base texture so it does not look repetitive while using assets multiple times as I have a set up in unreal to add OR remove some of the moss layer if needed.
Ground textures are taken from Megascans and tweaked in photoshop based on my requirements.
Since the ground area is very limited in this scene, I have just used one simple plane geometry with some mesh tessellation based on asset placement.
Few close up renders of assets using blend shader in unreal.
Other smaller rocks are placed on the side, these are taken from Megascans, to make the process faster.
Diyas and hanging bells are created in the traditional way, the Diyas are using an illumination map to get the lit flame look.
I also used some projection decals in the scene to add some attention to the viewer and add some story of humans coming and going to the Temple.
Since most of the plants were simple, they were also created in the traditional way. I used 3ds max and some textures Megascans, I also used a few textures from previous projects. The grass was just created in max using a texture from google and then tweaked in Photoshop. One of my close friends, Akshay helped me in IVY creation.
Foliage shader is simple with some wind setting controls and some color variation for base color.
I painted all the grass with the foliage tool, it’s very fast to get quick results and manage iterations whilst in 2nd pass. I then worked on polishing some of the close areas and removing/adding grass. If something is floating or intersecting, I fix it.
After doing the 1st pass of grass placement using the foliage tool, I then place a few plants, ground covers and ivy manually based on my composition.
Compositions & Refinement:
Some final changes I made to make the scene pop a little more. I added a damaged pillar in the middle of the pathway to lead the eyes to the focal point. I also rearranged the diyas position, in hopes of slowly taking the player’s eyes to the main statue, while also leaving some story about the human presence that has been in the area.
The scene composition and lighting are things that changed a lot during the process of making the scene, I didn’t quite like the first lighting pass. Daylight was not looking
as great as night, I asked a few friends for some feedback. It’s always good to have feedback from other fellow artists, seniors or friends. When you work on the same scene for long periods of time, with the same composition and the same lighting, you start to feel lost and end up locking yourself up in one idea.
Perhaps your scene is not going in the right direction or maybe it’s in need of some improvement. So, do not hesitate to ask others for feedback.
The composition is very simple. I have created a centre focused composition, I tried to separate the background (temple walls), the mid area (the statue and stairs), and the foreground (cliffs, ground, side smaller rocks), whilst also trying to create an eye-movement that goes from the first fallen pillars on the left to the damaged pillar in the centre to the diyas leading to the S shape placement which takes the lines to the stair base.
Lighting and Post processing:
While setting up lighting for my night scene, I kept in mind things I wanted to include such as a focal point, scene contrast, movement, and the rule of thirds.
Somethings I struggled with initially, was how bright or dark I should make my scene. As it was now, a night scene it had to be dark but most of the composition still needed to be viewable. I also wanted a full range of values so I would need at least one area to be bright.
As for the colours, the blue shade of the moon light and the yellow lights from the diyas worked well. I kept the focus on those complementary colors, and with the rest, I tried to bring it to a more saturated color to get a wet look of the night.
The lighting is dynamic and uses the traditional workflow: Directional Light, Skylight and point lights.
The diyas filled up the other dark areas. I tried creating blueprints for the diya flame, but it was taking too long to understand the blueprint settings/controls.
Dynamic Point Lights with different intensity and radius scale worked just fine.
In real life, diyas do not give that much of a warm feel or glow, but as I wanted to make the scene warm I kept diyas lit intensity slightly high to make the scene more dramatic.
The cold atmosphere is coming from the Exponential Height Fog, the fog sheets, and the blue color of the Sky Light. The Color Grading from the Post Process Volume, also helped. I also modified the Rendering Features (like AO, Cubemap, Ray Tracing Reflections, and Misc).
Color grading values:
I placed a few fog sheets around the statue to reduce contrast behind the statue and also to make the warm feel near the statue.
I also used some free particles like fallen leaves and fireflies around the diyas to add some living life into the environment.
The hanging bells and diya flames are using simple wind settings like foliage shader to get a simple wind effect.
The main challenge for me whilst making this scene, was finding the perfect composition with the right balance of lighting. I had to change my composition several times to get my final result.
I believe, it is important to focus on the main shapes first and be too caught up and worried with changing things, even in-between progress of the scene, doing this before adding all the small details, saves you alot of time.
You can create a very interesting looking scene even with only basic rough shapes, and then you can improve it from there. It also helps me when thinking of the scene from a player’s point of view or a gameplay perspective. For example, I would try to think how the player would reach that statue, and then plan and add details accordingly. For that I needed to add pillars, posts, hanging bells, diyas, painted marks on cliffs. No large foliage or assets that could be blocking the focus of the scene.
Decisions like this help a lot with making an environment believable. I would suggest to spend more time initially making sure your composition is in the right place.
Overall, this was an exciting and fun project to work on.
If you are reading this, Thank you for your time. I would like to thank people that helped me out a lot
with their great feedback.