Rahul Sonawane told us how the Silent Corridor project was made, showed how he created dust, and explained the texturing process in Substance 3D Painter.
It's a personal piece, so I wanted it to look realistic like the photographs of abandoned houses
Introduction
Hello! I'm Rahul Sonawane, a 3D Environment/Prop Artist from India. After I finished college, my childhood admiration for the environments in movies and games drove me to pursue a career in this field. I initially enrolled in an institute to study animation but I was disheartened by the demotivating teachers there. So, I took matters into my own hands and started learning through online tutorials shared on YouTube. Over time, I became proficient in 3ds Max and V-Ray.
This led to my first studio job as a 3D Architecture Visualizer, where I honed my skills as a 3D artist. However, a year later, I decided to take a different path and become a freelancer. I began working on various projects, including interior design, product modeling, and furniture modeling. While I gained experience, I realized that I wasn't entirely satisfied with the work I was doing since it primarily involved modeling. This prompted me to embark on a personal project where I would focus more on the texturing phase and create complete 3D scenes.
The Silent Corridor Project
I struggled with large scenes in the past, so a friend advised me to start small and focus on intricate details. Inspired by this, I selected a scene from my collection of movie and game screenshots that I really liked. I went through Pinterest and Google for references, collecting images of props in various scenarios, studying their interaction with light, and capturing details like dirt and grime on the meshes, I even found inspiration for the final render. I have a habit of taking screenshots while watching movies or playing games whenever I see a beautiful scene, It could be the composition, lighting, or a prop that looks really good. Later, I used them to create my own versions.
Image credit: Escape Plan Productions | Saint Maud
I collected references for renders, focusing on how I wanted my colors to appear in the render. Slowly, I added references for props, guided by various Discord communities.
The software I used:
- 3ds Max
- ZBrush
- V-Ray
- Substance 3D Painter
- PureRef
- Megascans
- RizomUV
- SpeedTree
My mood board
Blockout
To block out the scene, I first added a biped with an average human height for size reference. Then I created a simple mesh and used a V-Ray camera to block the scene. I applied the rule of thirds in the V-Ray Frame Buffer to compose the scene and strategically place the props. I even added a basic light above the door to get a sense of the scene.
This is a new habit I've developed that has greatly improved my scenes. I often save renders and bring them into Photoshop to analyze and identify areas for improvement, marking these with red color.
Suggestions added in Photoshop
Modeling
I used 3ds Max for modeling. This part was the easiest because there were no complex meshes involved, and it finished faster than texturing. I started with the main door with four different locks, then used the same door around the scene with only one lock, saving a lot of time.
The walls were very basic shapes. I imported them into ZBrush and sculpted the edges, the rest I wanted to achieve in the texturing step.
To simulate the paper, I used Marvelous Designer. It was a simple plane and simulation. I kept adding papers on top of each other and ran the simulation. Although GPU simulation is fast, it's not perfect, so I switched to CPU simulation for the final result.
The reason I used SpeedTree was that it was quick and I could create different versions of the same tree with just one click. I created a base tree trunk and added branches upon branches, then I applied magnetic force to the branches to make them turn in one direction, giving the effect of a tree swaying in the wind.
For the paper ball simulation, I followed a fantastic tutorial on YouTube titled 3ds Max Tutorial: Crumpled Paper by Antonin Moucha. It offered a clever trick that I found quite effective.
As for the cobwebs, I utilized a plugin called Cobwebs by JokerMartini, known for creating realistic cobwebs that can be baked onto a simple plane mesh.
I did basic modeling in 3ds Max and then used ZBrush to add a few details like edge wear on some models, and achieved most of the details in Substance 3D Painter.
Basic mesh
Sculpted mesh
I imported the walls into ZBrush and used the Standard brush to add uneven volume to the edges. Then, I used the Trim Smooth Border brush to trim those edges and add wear and tear. I even sculpted the edges of the switch. For some reason, I thought it would enhance the scene, but overall, I did very basic modeling in 3ds Max and sculpted simple edge wear in ZBrush because I wanted to achieve most of the details in texturing.
My models were mostly hard surfaces, so unwrapping was a breeze. I decided to use RizomUV because it's fast and efficient. I used automatic unwrapping except for certain meshes. RizomUV automatically arranges UV islands perfectly, so there's no need for manual work.
Texturing
There was a time when I despised texturing and unwrapping because it involved painting in Photoshop over the UVs and removing light from photographs to use them as textures. Plus, it wasn't even in real-time. This was a lot of work, but with the arrival of Substance 3D Painter, things got a lot easier for me. I've started spending more time in the software and now I enjoy texturing. I know I can spend less time in ZBrush, confident that I can achieve some of the details in Substance 3D Painter.
I used the same workflow as game developers: baking high poly onto low poly. I baked all the meshes to their default setting and baked all the maps enabled by Substance 3D Painter.
PureRef is a big time-saver. I would often look at the references and try to mimic them. I even picked colors from the references as PureRef is always on top of other windows.
I started with the doors because I knew I could texture one door, save the material as a smart material, and use it on other doors, saving a lot of time. I started adding random layers hoping to achieve the same results as my references, but I failed. That's when I realized a step-by-step approach would be more effective. Breaking down the texturing process into specific elements like height, roughness, color, and minute details, made it more manageable. I found that tackling one aspect at a time was easier than trying to do everything simultaneously.
So, I first added wood grains on the door as height, then I worked on the colors of the door, moved on to roughness, and finally added posters and notices on the door. All this time, I was looking at my reference and trying to achieve something similar to it.
Door material breakdown
Next, I moved on to the walls, taking my time because they occupy a significant portion of the frame. I began with three different base layers: rough inner concrete, which is visible in the most damaged areas, followed by a layer of cement, and finally, plaster. I strategically painted the wear on the edges and some peeled paint. Lastly, I focused on the paint on the walls. I experimented with different colors and settled on the one I liked the most. I
manually painted cracks, dust in the corners, color damage, and tiny details on the walls. Here's how I painted the cracks.
To create subtle cracks on the wall, I added a paint layer with only the height map enabled. I used a fine Charcoal brush to paint the cracks. Then, I applied a blur slope filter to break the cracks and make them uneven. Afterward, I duplicated the same layer above it. However, on this layer, I removed the blur slope and added a blur filter.
Wall material breakdown
Here is how I created dust on the surface of the mesh, you can apply this to any mesh.
To create dust, you need to bake the world space normal and add a Fill layer. Choose the dust color, then add a black mask. First, add a generator under the mask, then select the light generator. Adjust the light as if it's falling from above; the light generator uses world space normals for this calculation. Next, include a dirt generator and change its blend mode to multiply. Add another dirt generator and set its blend mode to overlay.
Dust material breakdown
For the floor, I used a Megascans floor texture as the base and then built upon it using the same workflow as with the cracks to create damage and weathered effects on the floor. I added footprints and door tracks, although they might not appear in the render due to lighting positions, it's still valuable to have them there.
Floor material breakdown
Creating window dust was relatively straightforward. I changed the material to PBR-Alpha-Rough Blending and added an opacity map in the channels. With the opacity map now available, I set the base fill layer's opacity to 0.1. The layer above it was dedicated to corner dirt, which I achieved using an edge generator. I also hand-painted certain parts of the models to enhance their realism. Afterward, I continued to add dirt layers until I achieved the final appearance of a dusty window. While visualizing glass materials in Substance 3D Painter can be challenging, it's helpful to temporarily enable the metalness in the layer just for visualization purposes. Just remember to turn off the metal layer when exporting textures.
Glass material breakdown
When I initially started this project, I knew I could handle modeling, but texturing was a challenge for me. I really wanted to learn it through this project, and I'm glad to say that I did learn a lot. I'm truly pleased that I started and completed this project.
Setting up materials in 3ds Max and V-Ray was easy. Using V-Ray material, I switched to roughness from gloss in the BRDF section and turned my reflection to full white. Now, your V-Ray material is set, and all you have to do is assign textures to their respective slots using the V-Ray bitmap. In the V-Ray bitmap, change the color space transfer function to 'from 3ds Max' for the diffuse texture. For the rest of the maps like normal, roughness, and metalness, set it to none. This method worked well for me.
Material setup
I didn't change my composition at this stage because I had already done that during the blocking phase. At this stage, all I did was set up materials for the meshes. When I finished and hit Render, I was disappointed with the result. My scene looked dull and boring despite all the work I had put in. So, I turned to Discord servers like DiNusty Empire, CG Lounge, CG Hero, and Autodesk 3ds Max for help. There, I met some really helpful people who guided me through this scene. They provided suggestions on props, colors, materials, and finally, the lighting.
Iterations
Lighting
I made several changes to the lighting because it was really disrupting my composition, so I decided to change my lighting setup from daylight to nighttime. During the day, I could only play with one light, the sun, and it looked really flat. My lighting setup for the night scene consisted of four lights: one HDRI for the outside environment, two lights in the corridor, and one in the right-side room. The light near the door served as the main working light, providing plenty of brightness. In contrast, the second light in the corridor was more subdued, adding a sense of age and dimness to shift the focus toward the door, which was closer to the main entrance. This setup really enhanced the mood of the scene, and I was happy with the results. After a week of back and forth and making changes to colors and the placement of the props and additional props, I was close to the final vision. This time, I was really happy with the results I had achieved with the help of these wonderful Discord communities.
Later in the process, I fine-tuned the lighting using LightMix in the V-Ray frame buffer to achieve the lighting balance I had in mind.
Rendering
I used V-Ray for rendering and switched to V-Ray GPU for faster renders. The render settings were kept at default. In the render elements, I added back to beauty, denoiser, LightMix, and Cryptomatte. I included them as a safety measure, allowing me to make minor adjustments using these elements instead of having to render the entire scene again.
The render turned out really good. Now it was time to start the post-production. I used V-Ray VFB to make minor changes like light intensity and colors. Then I took the image to Photoshop and added minor adjustments to it like contrast, noise, vignette, and chromatic aberration.
Finally, my render was finished, and I posted it online for other artists to see. The people from the Discord community were genuinely happy to see the end result.
Conclusion
Throughout this journey, I have learned many things. There were times when I considered abandoning the project. The render looked dull, the colors were all over the place, the lighting was bland, and props were missing, but I kept on going because it was a personal challenge. I wanted to prove that I could do more than just modeling.
There are a few things I have learned over the years and through this project. Just because you have a certificate doesn't mean you are job-ready. Take some personal time and try to learn something new and useful for your profession or something that you really want to do.
Freelancing is not always profitable; there are times when you go without work for months. During those times, try to do personal work. There was a time when a modeler only had to do modeling, but times have changed. You need more than just modeling skills; you need to excel in all aspects that make a good 3D environment. It's tough, but it's the reality. Spend at least a week with something you want to learn, and slowly, you will get the hang of it. Everyone learns things at their own pace, and being a part of a community is really important. There are people who have experienced the same challenges as you, and they can help you with yours too.
For the past few months, I've been dedicated to learning environment art. I've loved playing games since I was a kid and I still do. So, why not learn to create them? With the knowledge I've acquired while working on this scene, I believe I can bring my environments to life. I have tried and failed before but, that won't stop me this time.
I hope you have learned something through this article, and apologies if you haven't. This was my first project, so please forgive me.
Finally, thank you, 80 Level, for giving me the opportunity to share my experience. See you next time with my game-ready environment. Maybe I will have a job in a game studio by then. Who knows?