Very impressive article Jake! You are very talented.
nice article! i love seeing the breakdowns.
Adam Kenyon showed how he created his latest scene and explained how you can use similar approach in game production.
My main aim with this project was to build a small, simple environment that showcased tessellated materials. Also, I wanted to achieve nice lighting and realism while having good surface details. Moreover, I hoped to improve my skill with material definition development over the course of this project. Doing quick, small scenes is enjoyable because it encapsulates and focuses my attention on the bare necessities of an environment’s structure.
I quite liked the original reference and how games, such as Resident Evil 7, capture mood and atmosphere. Honestly, I believe some of the simplest environments are the most effective. In general, I love the look of basements—they’re so eerie, dank and atmospheric! I believe if I extended this small scene into a full-blown basement environment, there would be plenty of character and many great props to thrown into the mix. Lastly, I imagined this small scene as a potential foundation for a future project of mine.
First things first, I assessed what kind of materials I needed to make. The brick pattern is a rather standard brick wall pattern; but, the material of the bricks—contrary to the red ones we typically associate with houses and outdoor garden walls—has a slight sheen on it because it’s moist clay.
I produced this moist clay material by firstly blocking out the pattern in 3ds Max (other preferred modeling packages work fine as well). A good, dirty block out of the pattern is always a solid way to set up the process for creating a new material.
Next I took it into ZBrush so I could sculpt out the bricks, adding details on the surface as I went along, including grains, chips and cracks as well as detailing the edges of the bricks. I created as much variation as possible to make it seem less modular on the surface.
After finishing sculpting what I wanted, I did a small test to make sure it tiled together. This was the same method I used for the wood as well. Additionally, I attempted to move some bricks in and out, just like the wood, because it benefited the height-map bake for the game engine. After all the sculpting was done, I turned my attention to the baking. The bricks/wood panels were baked to a single plane and unwrapped in 3ds Max where I then added some tessellation to them. I needed to tessellate the mesh because of its higher density, which also created a smooth height transition in engine and created the all-important illusion I was hoping to achieve.
I used Substance Designer to bake out Normal, AO, Height and Cavity maps at 4k resolution. Once this was done, I took the texture maps into Substance Painter, which was essential to the details of the brick panel. After I hooked up the maps to their slots, I baked out a curvature map that helped me get into crevices and cracks while texturing with masks.
I used many different grayscale masks, such as grungy dirt and height, to elevate the micro details in the surface and the moisture/muck that accumulated across the bricks. Once the texturing was done, it was time to import it into UE4 and make a simple material setup while also using the tessellation multiplier and world displacement.
And really, it’s a rather simple setup! I used PN Triangles as the Tessellation type to keep things optimized and not hamper performance. Two variables controlled the amount of tessellation and also the displacement. For this project, I didn’t make an instance but it’s an easy-to-do step in the production process. If I had made an instance of this material, I would have been able to control it in real time without having to open or edit the main material setup. With this rather simple shader setup, I then began tiling the brick and wood panels.
Using free brushes from Andrew Averkin
The free brushes—a huge pack dedicated to natural and organic details like stone, rock and damages—from Andrew Averkin are amazing! The pack sped up the development of the bricks, especially because it included so many insert mesh brushes that added a wealth of detail and character to my project.
I used many out-of-the-box brushes in ZBrush, such as Dam Standard, Trim Dynamic and Trim Adaptive. I used Averkin’s brushes on the stone steps as well. Particular brushes were even awesome enough to make the concrete appear stretched with bits of gristle and stones left in the cavity. Overall, I had a lot of fun using his brushes, which produce work that looks great when baking out maps!
The lighting setup is also simplistic—a few dynamic point lights are near the main light source. I wanted the light to softly travel down the staircase from the bulb above, growing darker the further down it went to create a cinematic look.
In addition, I used one directional light to create shadows lower down. I used a yellowish spotlight toward the door to fake the light coming off the bulb above and to highlight the grit and wear on the door as well. The lights nearer the door are the brightest, while the ones lower down are dimmer to create the transition between light and dark. The bright lights supply a nice sheen across the upper bricks thereby leaving the lower bricks darker, which also helps to highlight some of the moisture and warping on the wood panels.
How could this simple approach work for games?
That’s a good and tricky question! I think this approach could work for game production because it’s so simple yet effective. I think we’re seeing tools like Designer and techniques like photogrammetry becoming the norm in the video game industry. And height maps definitely are the way to go in terms of realism while saving on polygons.
It’s a very quick and effective setup to get into a game engine. There are so many ways to make a height map and height maps’ have endless possibilities. I feel game production needs to be quick and effective, particularly in big studios that need fast results. You gotta be careful, though, with tessellation. Although costly, it’s much more effective than individually modeling wood planks or bricks. In the long run and when done right, tessellation has the potential to save a lot of time and money!
How long did it take you to build this scene?
From start to finish, I completed this scene in about two days. To cut more time off the production, I would have had to use Substance Designer’s brick generator instead of ZBrush’s sculpting. But, I like to use ZBrush for anything organic, and I’m still learning how to fully use Designer. With Designer, however, I probably would have cut down on the time taken to make these materials and Designer’s advanced functions may have even brought more detail to my work. Other than that I’m not sure what else I could have done. After all, I think creating such a small, simple scene in under two days was an ample amount of time!
Thanks 80lv for reading about my work (once again)!