3d artist Clinton Crumpler talked about the creation of underground environments, sharing some cool professional techniques.
Let talk a bit about the scene. It’s such an interesting combination of natural and artificially made objects. How did you create the cave walls and structures?
The first thing I did was look at a ton of reference to clarify and understand specifically what type of cave and wall type I was trying to create. I did some field trips to look at local caves and tunnels, I also scoured the web and Pinterest finding good examples of caves and underground bunkers, old and new. I looked at old factories, tunnels, power plants, and anything else I could find that had a similar look and feel to the sensation I was after. Next, after examining the construction of these underground areas I had a good understanding of what type of construction methods were used to create the walls and how the caves we hollowed out.
At first, most of the examples I found were relatively smooth surfaced walls. I found while more accurate to real underground bunker areas, they were a bit boring while creating them for a game scenario. They tended to lack shadow and highlight contrast and felt flat when only a normal map texture was applied to them. Sometimes examining real life and extrapolating on ideas and exaggerating some shapes you find that will create a more exciting and visually pleasing result regardless of its exactly trueness to reality.
While creating the cave I tried and tested a few different methods of construction. My first attempt was to create a set of a few modular tube pieces that would be both the walls and floor. I thought this would be good because then I would easily be able to control the vertex paint, material position, and look of the blend from floor to the walls.
Initial test for making modular tube cave pieces
After testing with this I realize the cave was beginning to feel too restricted and a bit too simple. When I wanted to make organic turns it was hard to work this into the giant mesh without it impacting the rest of the instances of the mesh in the scene or having a larger set of meshes. Also the lightmap size for this method had to be fairly large to accommodate for the amount of detail and materials on the mesh. There were also a few errors here and there that showed the obvious transition from one mesh to another. Especially when I attempted to use displacement maps to create a bit of mesh change from one area of the cave to another.
Then I went back to the drawing board and attempted to use some smaller easily moveable and scalable meshes that could easily be grouped together to resemble the shape of the cave I was attempting to make. This proved to have a much better result.
Base Wall Zbrush Rock Sculpt
To do this I sculpted 1 unique wide cave piece in Zbrush to define the major shapes on the wall. In Zbrush I kept the shapes large and easily readable. This was so the shapes would be easily scalable and still remain natural at different sizes. Later I would be adding a detail normal and diffuse tiled on top of the Zbrush normal map to establish real world scale of the more details rock aspects. Also in the sculpting phase, I made sure to have the main mesh curve back and not just terminate on the sides so I could raise or sink the mesh into other meshes in the scene without worrying about visible holes being shown.
After I decimated and UV’ed model to then bake the high poly zbrush model to the low poly. I then brought the low poly mesh into maya and deformed the shaped into multiple different useful shapes to help define the cave. While deforming the mesh I kept the UVs intact to be able to continue to use the main shape I had sculpted and baked. I tried to avoid bending or breaking the shape to much to maintain my original UVs. I kept the shape changes subtle but thoughtful to provide for any type of scenario I ran into while created the cave walls.
Cave pieces set
Cave pieces in action placed in the scene
Then after importing these shapes into unreal, I applied a material that I created with world aligned tiling details (stains, drips, dirt, cracks etc.) controllable by vertex paint. This kept the textures tiled in world space and aligned perfectly to each other no matter where it was placed in the scene. I used this so that the walls would feel conjoined to each neighboring piece regardless of size, direction, or position. One thing to note about this was that I added a switch to this secondary world tiled textures, because the cost incurred by tiling so many textures in world space can eventually add. Having a control on this allows for easily disabling this feature or turning it on for pieces or chunks of wall that reside mostly in darkness.
Vertex Painted Rock Wall Segment
The wall and bunker segments were created in a similar way, but were constructed in a more organized modular construction method. I also use some world aligned materials to make the pieces connect with switches enabled to control which pieces had this material setup.
Bunker Modular Set Pieces
Also similar to the cave walls I set up a few controllable vertex paint parameters to help add age and wear to specific parts. I made three vertex paint channels as a test to see what kind of wear I wanted.
Red Channel – Drip Stains
Green Channel – Damage Wear
Blue Channel – General Dirt
Vertex Paint on Bunker Walls
In the end I found I really benefitted from having material controls connecting all the pieces of the cave or bunker walls to consistently alter particular material looks or aspects.
Could you talk a little about the production of various details in this scene?
When creating this scene my client, Kollide Entertainment, first presented me with this concept image and a bit of background. Knowing the background of any scene is vital to understanding the props and assets that file the space. For this scene I was creating an older Soviet-style bunker that had been used more recently and retrofitted to suit current military needs.
Concept from Kollide Entertainment
Knowing this I had two stories to tell in the scene.
- Create an old Soviet style bunker with Russian markings, labels, and remnants of its former uses.
- Create new assets and props that support the modern day use of the space and how they have transformed this into a renovated space.
With this in mind, I was able to begin to document and look at older bunkers and study Russian marking and cold war construction. I looked at some of the signs used on highways and some of the bunkers constructed during that time period.
After looking at images like these I was able to determine a list of assets: wall panels, doors, floor layouts, lighting fixtures, pipe types, and wiring mounts. With the establishment of the skeleton of the scene and the assets that had been there for many years, I could move on to the newer parts of the environment.
For these present day elements, I examined the scene and try to think of how someone would come into a place like this and find a way to reuse its space. How would they interact with dealing with the dark areas, old and possibly hostile air, and blocked tunnels? I had to keep in mind that most of the materials and props brought in had to be mostly temporary, attached to preexisting structures, or easily moveable by a small military team.
I looked mostly for reference of easily transported military goods and weapons, shipping containers, and plastic crates of military influence. I looked at underground cave and tunnel excavation and mining for examples of things like ventilation tubing and lighting equipment. Understanding how the workers would place instruments and construction parts within the space and how tunnels were lit helped to define my final asset list and scene layout.
Establishing this I looked at references like these:
As for creation of assets and props, most were created in a typical fashion by creating a high to low poly model bake. I create my normals, ambient occlusion and any baking I do from Might Bake. For materials in Unreal, I created a master material that had a few useful switches to controls most every aspect of the material.
Some of these controls were made to control dirt, wetness, and a secondary texture set that could be used to show extreme wear. All placed behind a switch in the material so that if I chose not to use those parts of the materials then the material could remain much cheaper. This made controlling all the materials and material instances in the scene very manageable and tweakable.
Master material for props
Could you tell us how do you reuse and combine assets and textures? Can you talk a little about the different ways to achieve variety in the scene?
Reducing the amount of draw calls and textures used in the scene always helps with performance. Also having to make fewer meshes and materials is always welcome when working on a larger project like this. Saving your time and finding the most extensive use for each texture you author can go a long way to help make sure the scene feel full and complete.
There were a couple of instances when I tried to reuse assets and texture memory. I used a few modular sets that made reuse pretty simply, and easy to set up with the pipes, wires, tubes, and bunker wall pieces. One of the easiest wins was the crate I created for the scene. I designed the high to low poly bake to an easy to reuse texture sheet and mesh setup.
Wooden Texture Sheet
The texture had one space specifically for larger flat wooden boards and then others that were for smaller 2×4 sections. I also squeezed in a few wooden construction parts commonly used on crate designs. Since I laid out each of the UVs in a way that I could turn rotate and scale the wooden parts of the crate I was easily able to reformulate and manipulate the shapes to form different box shapes and types.
Wooden Crates in the scene
Thinking about the bigger picture and documenting what type and how many of each asset you will need in a scene will help you to make smarter decisions on making assets and reusing textures and meshes throughout the process.
Wooden Pipe Container constructed from wooden crate elements
I’m very interested in the way you’ve created the ground material. It has so many peculiar elements and it works so well with water and light.
For the ground material, I used Unreal’s layered landscape material setup so that I could use the landscape system that exists in the engine by default. Landscape tools are super powerful in unreal with the ability to sculpt and manipulate the shapes in the editor without having to bring the mesh back and forth to another 3D program.
Landscape Master Material
After that, I decided on what type of material and ground types and I made 4 sets of textures that accommodated each of the looks I was going for.
Each texture set I created for the terrain was custom sculpted and tiled in Zbrush and then I brought the normals, ambient occlusion, etc into Photoshop and used a bit of Quixel and personal photos to create the rest of the texture set.
I tried to keep as many of the textures channel packed as possible as the landscape material can only have 16 textures called into the material at once in unreal. Knowing this, I combined height maps, roughness textures, and any other utility textures that didn’t need RGB values into one channel and packed these with other one-channel textures.
Rocky Dirt Material
For additional blending of the ground into the walls, I made a few individual rock chunks and pieces. I made one larger chunk of grouped rocks as well as additional smaller rocks that I scattered throughout the space. This helped enforce the illusion of the normal mapped rocks on the terrain and helped to blend the larger wall rock shapes to the dirt on the ground.
For the tire tracks I sculpted some tracks in zbrush and did some editing to the final normal map in Photoshop with some dirt normal map overlays. Then I created my diffuse and the other maps I needed to complete the material for use in Unreal. All of the maps tile from top to bottom so it would be seamless along the spline meshes strung together. I also created an alpha mask to cut out the deeper tracks from the blending ground texture.
Next, I made a subdivided mesh in Maya that I would use to map the tracks to. This mesh would also be used in the scene on a spline to deform and lay on top of the landscape. I then placed the spline throughout the cave and snapped the spline to the landscape using some of the tools Unreal has for controlling the falloff and amount to move the spline or landscape under the spline.
With the alpha mask texture applied on the material as a mask type material, I noticed there was a harsh blend or cut sometimes between the surfaces when the colors or normal map shapes didn’t match up between the tracks and the landscape. When I tried a transparent material blend I lost a lot of the normal and material response I had previously received from the masked type material.
In doing some research I found a node that served my goal of fixing this issue, the dither opacity node. This node was released in version 4.11 and provides a subtle blend for a masked material type and emulates transparency with some noise to fake the blend. There are a few quirks as it can “sizzle” or minor ghosting issues but if used correctly or with noisier textures the ill effects are easily hidden. Since I was using this on the ground it was easily disguised in with the dirt, rocks, and ground blends.
For additional support on the tracks I also created a decal with similar material properties that I would overlay on top of the spline to emphasis or deepen the tracks in particular areas. I only placed this in a few key areas as it is a very large decal and larger decals can cost a lot depending on their placement and how many meshes they draw over.
Tire Track Spline Mesh
This scene seems to use different lighting types and colors. How do you construct lighting in a scene of this complex nature?
Lighting is a really hard thing to get perfect and when it comes to baking lighting it can sometimes take a long time on a level of this size. The hardest part of lighting comes on where and what type of lighting to use while maintaining good frame rate and performance. Considering how large the size of your level will be and how the lights are used is key to establishing a general idea of light layout before placing your first light in the scene.
To keep the scene feeling a bit more dramatic, I tried to keep the light positioning and spacing far enough from each other to create a sort of silent or eerie feel. I wanted the cave to seem dark and ominous but obviously not too dark that you wouldn’t be able to see what was in front of you. I kept my spotlights at a smaller size to not flood the rooms and caves with light and I also kept the cone angle of the light pretty tight. This allowed for good spacing and easy readability between each placed light.
Separating lighted areas from dark areas.
I also tested and tried tons of IES textures on lights to achieve more mood and breakup with the lighting that came from ceiling and wall lights. IES textures are used in Unreal similar to gobos used in film, and are great to break up light sources and add a bit of flare to some of the more visible lights in the scene. They are essentially a type of mask that is applied to the light that creates light and dark shapes within a projected light. They can be used to create the illusion of multiple bulbs in a single light or to simulate shadows that are blocking the light near the source.
As for types of lights there are mostly static light with a few stationary lights in the scene. While static and baked stationary lights give you the really nice contact shadows and definition, you will find that a room only lit with baked lighting might feel like it is missing a bit of material definition and response. Moveable and stationary lights do an excellent job of recapturing this material response but can be much more expensive, especially if you use to many in a single area. Often if you have to many dynamic light unreal will even disable the offending lights because of how largely expensive they are with too much overlap. In experimenting on what lights gave the best material response I pick and chose what the best spots to enable stationary lights. I typically would create lighting blueprints with a static light. Then set it with an approximate brightness and setting values. I then would evaluate in each space where I could afford dynamic lights and I would then switch those by overriding the light details in the scene, keeping the original blueprint values intact in the content editor.
Also a trick to getting good material response with a stationary light is to artificially angle a horizontally forward to the camera or player. This gives you good glints and hits of material response that shows up really well when facing toward them. Make sure to keep the brightness at a manageable level to not overwhelm or blowout the scenes lighting especially if it is more of an artificial light with no real source. I find that is one of the greatest thing about creating game scenes in comparison to real life. You can fake lights or add lighting information to specific areas of your “canvas” to produce the most compelling composition, regardless of real world credibility. This was easily implemented in this scene as the construction lights are angled so that the provide really useful glancing angles on light on the ground and walls.
Angled cool colored floodlights
Another technique I used for lighting the scene was the use of warm and cool colored lights. Using cool colored lights on the newer props such as the construction floodlights and warm on the older tunnel and bunker lights, I was not only able to tell a bit of story with the age of the light installation but also separate the scene by colored areas. Using the pools of color the different areas of the scene are easily divided by the eye and focus on particular assets or areas are emphasized with brighter warm lights and cool fill lights.
Using warm and cool lights.
In the end I found I really liked working with this scene for the amount of flexibility on creating colored lights and having good contrast between light and dark areas of the space.
Lighting only – Detail Lighting – Full render view
How do you work with Quixel and Substance in your workflow? What tools are used for what purpose, how do they work together in one production line? In terms of your choice of tools, how many of them are used in game production as standard?
Finding the right tools for the job can sometimes be tricky as an environment artist. There are so many powerful tools that artist can use to improve and speed up your workflow and production pipeline. I find that not being too attached to any one tool, as the “master” tool is the best way to go. If something can be done in substance, Photoshop, or Quixel, Zbrush, Maya, etc. choose which one you find easiest and most efficient for you. For someone else that may be a different option. Allowing yourself and other artist choose and find what fits their style is key to creating quality art. Nothing really matters during the creation process as the most important part is the end product. Try to remember that all that matters to the client and/or company is the final result and how it looks in game. Also don’t be afraid to try new tools. New game changing things come out all the time that may change how to go about making your art. Becoming stuck in dated techniques can actually slow you down. Be open minded to testing new features, tools, and programs, to keep your ability and toolset growing to suit a ever changing industry.
I found for most of the work I did on this scene specifically that Quixel provided a lot of the tools that I needed to texture many of the assets quickly and efficiently. That is not to say that Substance could produce some other particular results, this is just the tool of choice that I used for this environment.
My typical workflow tools:
Maya – For high and low poly creation of asset
Zbrush – Sometimes creating the high poly of the more organic shapes
Mighty Bake – For baking texture maps and masks
Photoshop – Compositing and editing textures
Quixel – creating textures from masks and 3D painting some wear and detailed texture information
Unreal – Game engine for final scene
Illustrator: creation of logos or graphics and signs
Some other useful websites:
Dafont: Fonts used for some of the signs
Cgtextures: Photos used for some photos bashing or compositing
Thanks for sharing a bit of insight on all your process and construction methods. Any last words you would like to share with our readers?
Yes thank you so much for letting me share. I always enjoy sharing some of the development processes of my work and problem solving on projects.
This scene is available on my website.
Lastly thanks to Kollide Entertainment for having me construct this scene and letting me talk about it with you all today!
Final Shots of Bear’s Den Underground Bunker