Could you explain how you made the custom grunge generator?
Amazing work sir! Congratulations
Stefan Oprisan did a very detailed overview of the fantastic Pharaoh’s Tomb, created in Unreal Engine 4. He showed the way he created the textures, organized the lights and worked with World Machine.
Hi, I’m Stefan, a third-year undergraduate student at Teesside University. Originally from Romania, I’ve lived in the UK for the past ten years. Last summer, I undertook a 6-week internship at R8Games, an independent studio in Middlesbrough. If you missed my article on photogrammetry, you can check it out here.
The Pharaoh’s Tomb
I had recently completed Rise of the Tomb Raider, and was amazed by the narrative direction and visual upgrade the game took. Taking inspiration from the game, I wanted my final year project to be an extension of the Tomb Raider narrative.
I started by researching and creating mood boards of different environment components. Using the Principles of Design documentation, I looked specifically at Architecture and Proportion since the tomb had to be engineered realistically to accommodate such a tight space. Especially when designing the pillars and murals, they had to look carved from the rock. When researching, I considered Petra, the rock city, to gain an idea of how to model those components. Using Emphasis and Repetition, I added authentic Egyptian elements (e.g. the mural drawings, vases, hieroglyphics and the tomb area). Ultimately I wanted to expand on the narrative aspect of the game, as Lara Croft discovers this tomb from her father’s research, eventually leading to her finding a journal that belonged to him next to the sarcophagus.
Using World Machine
For this project, World Machine was used for the outdoor vista, to give a greater sense of scale of the world. When working with World Machine, I find it’s all about choosing a unique terrain that makes it the viewer think: ‘wow’. I had originally planned to recreate the Valley of the Kings, and wanted to use topographical data of the location. However, after several attempts, this unfortunately didn’t work as expected and so I created a terrain from references and my own imagination. I took a lot of inspiration from Uncharted 4 and Tomb Raider because of their unique cinematic vistas.
With the rocks being such an important part of the level, they had to be created in a modular fashion to be realistic and believable – as well as efficient in time. Initially, I researched the type of stones and rocks you would expect to discover in a cave environment, particularly using locations such as the Valley of the Kings and Petra for their infamous hand carvings as my initial starting points.
Once my mood board was done, I began with simple primitive shapes in Maya to get the overall silhouette, later importing them to Zbrush. I began sculpting using the standard brushes, claytubes and trimdynamic, as well as brushes from Danni Carlone (who worked on Rise of the Tomb Raider), Jonas Ronnegard and Michael Dunnam. Their brush packs pushed the overall visuals and quality of the work I produced. Overall, the level includes eight unique rocks, all hand sculpted in Zbrush. Limiting the number of rock assets allowed me to focus my efforts on achieving realism and believability, enabling me to progress onto the next step of the pipeline in a much smaller time frame.
The terrain was jointly created by Substance Designer and Megascans. Using Designer, I created two types of sands which share similar features. From gathered reference, I started working on the wavy components of the sand. Using directional warps added subtle noises and broke the shape up a bit. The second stage attempted to make the sand look as if it had been blown away by the wind. To do this, I used simple grunge maps and more directional warps to break up the direction. The albedo had very little colour information, while the sand pebbles had a range of colours to break up the pattern and make them stand out. The roughness was interesting to work with, since I emulated the pebbles from the albedo, and made them shiny to see how they reacted to the light.
The Megascans materials used several layers which were blended according to their unique visual characteristics. If one layer had some interesting pieces of rock, I would make sure they were visible, while the remaining material would be hidden underneath. It was quite simple to use, but is something to take into consideration when working in Megascans with the overall material properties like albedo, roughness and tiling. Since whatever material I added would have its own albedo information, it had to be calibrated according to the material I was aiming for.
Furthermore, I used Substance Designer to create unique looking Egyptian assets, such as the hieroglyphics and rock wall. It started with a brick generator and noises to create patterns and shapes that defined the weathering of the asset. I wanted to emphasise the age of these historical components, so the normal map needed to have an impact on the overall look. Following this, I worked on the edge crack and erosion for the actual bricks, using slope blur and a noise pattern to create a chip-like effect that added age to the brick. For the hieroglyphic shapes, I researched symbols and separated them individually, using a tile sampler which was blended into the actual brick using Min (Darken) with a value of 0.075. I used this as an opportunity to expand my knowledge of both software and combining these two together, I created a highly natural terrain that when combined with the lighting system I had placed, felt real and believable.
Vegetation Assets Overview
Working with Megascans
Most of the assets from Megascans include several 3D plants which were present in my final year project. Being subscribed to Megascans allowed me to gain access to their material library which I used to create two landscape materials for the project. With future projects on the horizon, I can see myself integrating Megascans in my pipeline as the results have been phenomenal. I plan to create some environment where I might just use Megascans assets such as rocks, trees, and create my own meshes from the vegetation atlases.
This asset was one of the hardest assets to create in the entire project, but using references of actual tombs and patterns, I created a mood board to gain inspiration. Starting off with a simple box mesh in Maya, I gave it a few steps to add variation and height. After importing the asset into Zbrush, I used Zremesher to retopologise it for better polygon distribution. Adding a few subdivisions and using the brushes of eagle patterns, symbols, generic shapes and the hieroglyphic shapes, I set the symmetry to X, Y to save time. With a few shapes to get an idea of the placement and depth amount, I started adding additional assets where I felt they worked nicely. Projection master allowed me to accurately place them, however, sometimes it made things worse and ended up breaking the asset. When starting over I used some patterns in Zbrush, while others were continued inside Substance Painter. Using standard brushes like TrimDynamic and Claybrush, I started to chip away at the corners of the tomb and areas where weathering and age would take place. I scattered them appropriately using a variety of crack and damage brushes, without destroying the whole asset. Overall I’m very pleased with the tomb turnout.
Once unwrapped in Maya, I imported and baked the textures in Substance Painter at 4k, which gave me great looking textures to work from. The materials used for the tomb came from a smart material created specifically for this project. Using several grunge maps with slightly different colour values, I ensured they would stay consistent with the other assets. Weathering effects such as dust, dirt, edge wear, grunge, even manually painted those deep cracks would be placed above the colour information layers. On top of everything, height variation such as small bumps and low level perlin noises were added on top of the existing normal map.
The asset was exported at 4k, including the AO and curvature which was packed with the roughness mask. The shader created for these assets allow maximum customization and flexibility in what I wanted to use. Blending the curvature map on top of the albedo map gave an extra layer to define the edges of the assets. The roughness was a combination of Substance Painter and a RGBA texture with different grunges that were tiled and controlled from a multiple scalar nodes.
Egyptian Alpha Patterns
Assembling the Scene
The beginning of the project, a basic blockout using simple cubes was done to define the height and playable area. A second pass with several basic meshes created in Maya, were used to define a better silhouette of the overall tomb and the placement of several key assets such as the tomb, murals, pillars, etc.
The next stage was to gather references for the types of rocks you would expect to find in this type of environment. With that in mind, I began building more refined but still simple meshes as placeholders to see how far I can push the scale and boundaries of the level. Once the cave was closed off and I was happy, I started sculpting some of the assets using Zbrush to create a pipeline where every other asset would follow through. Given the time frame I had for this project, it was important to create an effective workflow that combined quality and time saving effectively. To do this, I created an estimated time frame and project plan.
Within Unreal Engine 4, a master material was created for every single major prop in the level. With some exceptions, such as the vegetation, crystals and few more. It allowed me to use combine albedo and curvature while able to vertex paint, blend two normal maps, additional RGBA roughness for variation, specular control based on the albedo, distance based height tessellation, AO blend, world aligned dust, multiple tiling methods, and input switches to disable un-needed features.
For the smaller assets, such as the rock piles, vases, and wood beams, I spent time giving them enough detail to make them look part of the environment. It was also important they resembled the treasures of a Pharaoh. Using Zbrush for damage patterns, the assets were imported in Substance Painter. I rebaked the height map to get extra detail from the new normal map. They were all textured using the same smart material for the other assets, while changing the colours to make them authentic and believable.
Lighting was one of the greatest challenges of this project. I initially wanted to bake the lighting to have a stable framerate and possibly allow the player to run around. However, baking the lighting resulted in the environment being far too bright or too dark, and so I switched to a fully dynamic lighting system that gave me freedom in the overall control of each light in real time.
I started with a directional light which was pointed towards the tomb itself, and began tweaking settings such as cascade shadow maps, which allowed for more accurate and realistic decay of the sunlight shadows. Other areas, such as the shadow filter sharpen and shadow bias, added another layer of natural shadows.
I also used bounce lighting to create even light distribution across certain areas of the level. With the main sunlight at 100% brightness, I added low level bounce light at a brightness value of 70%, moving to 30%. All the spotlights had IES profiles to create greater decay of the shadow falloff. I only added lights to the areas which had a noticeable impact on the overall scene, thus, disregarding unnecessary lighting which can be very costly.
All bounce lights had their inverse squared falloff disabled, as this gave me more control over the amount of brightness I worked with. I tweaked their values based on their impact on the scene, but values such as the Min Roughness, Cone Angle and Attenuation Radius were also considered. The post processing had a big impact on the overall colours and tone of the level. Tweaking settings from Colour Grading, AO, GI, scene colour and auto exposure had the biggest visual changes.
Bounce Lights System
Post Processing On – Off
Thank you 80lv for the chance to talk about my final year project and to give an insight into the amount of work that was involved. I hope this breakdown provides you with enough information to start working on your own projects. If you have any other questions I’d be more than happy to answer. Check out my ArtStation.