3d environment artist Jim Watson did a breakdown of his real-time scene, showing how he can use Blueprints to build beautiful materials and shaders.
My name is Jim Watson. I grew up in Omaha, NE, but I am currently living in Los Angeles, studying at Gnomon School of Visual Effects. I am focusing on Environments and Technical Art for games. I grew up playing a wide variety of games, and have always been interested in the creation of them. I was one of those players that explored every nook and cranny of a scene and would go up to a rock, and say “I like that boulder. That is a nice boulder.” Being able to make these experiences for other people is a true honor.
I created this project for the Environment for Games class, taught by Nate Stephens. It was a very informative class, that taught me the proper workflow of creating a realistic environment that still runs properly in gameplay. The goal was to create a game level, and bring it as far as possible to finish in 10 weeks.
As I was finding concepts and reference for my scene, I came across an awesome concept piece by Mike Garn. I liked the mood that he created within the scene, and I knew this is what I wanted to start my environment with.
After finding the concept piece, I started collecting reference. This process was not limited to just finding photographs and concepts that looked like the scene, but also included finding specific material references, prop ideas, and lighting in order to ground the scene in reality. However, I also wanted to include different elements that didn’t feel like they belonged in our world. I turned to other concepts and 3D art to find the mood, feeling, and props that I wanted to use. Inspiration from other artists is very important for improving your work, and can really push you to keep leveling up.
Blocking Out and Love for Modularity
A progress breakdown of my scene, starting with the initial blockout and ending with the final two lighting setups.
The most important part of any art piece is the block out. I made sure to spend an ample amount of time getting the shapes and size of the objects to fit in the environment. I also wanted to start lighting as soon as possible, so I had the time to tweak it throughout the process to make sure I created the mood I envisioned.
Zoo file of the meshes that I used in the scene
Light shafts I made to create fake volumetrics.
The goal here was to create a completely modular scene, minus a couple of hero objects, but have everything look unique. The two mains ways I fought the modularity was with the grime decals and vertex painting through materials.
To break up my brick walls, I created differing LODs for each of the 3 brick corridors depending on how close to the camera each part was, which had the added benefit of making my most expensive assets more efficient. On the mortar walls, you can see the decals I used to vary up the walls even more. There are two grime decals, 4 different warning signs (“Danger”, “Beware of Getting Pinched”, etc.) and a couple of Easter egg decals I threw in for fun.
For the water and the moss, I used Vertex Painting to paint out the areas where I didn’t want water or moss to appear. With this method, I was able to paint out opacity and really get specific with my scene. To get a realistic silhouette with my moss, I tessellated the mesh, which allowed the viewer to see even more shadows and details; details that a normal map wouldn’t be able to display.
For the atmosphere, I created four different particle systems: one for ambient fog, one for dust, one for the smoke coming out of the grates, and one for splashing water drips. These subtle details were the icing on the cake that really brought that extra touch of life to the piece.
The Power of Material Functions
Here was the most complicated part of the project. I created a material pipeline from scratch that allowed me to create nearly infinitely detailed textures on my objects while keeping the same texel density. With this pipeline, no matter how close up you got to a given asset in my scene, you would not lose any detail.
The first step I took was to create a material function that would allow me to blend different materials together in my master material.
Master Material Function
Here is the material function used for the main materials, each of which I created from scratch. I added in Base Color variation, and then an option to Desaturate it, so that I would be able to change color in engine. I then added more control to the roughness and specular values by adding a Min and Max to Lerp between. I also added tesselation and dithering to two of my functions so I could blend meshes more seamlessly and have more detail on my materials.
Once I had my material functions finalized, I moved on to creating my master material. I applied three main materials per object, using a packed Mask Map that I painted in Substance Painter to comp the materials to their given place in Unreal. Then I took each of these main materials and added more functionality with vertex painting.
Next, I created my own Material Function called “Make It Wet” so that I could paint “wetness” onto the mesh. In this function, I took the base color and multiplied it by a certain value to create a darker diffuse, added customizable refraction, spec, and roughness sliders so that these could be changed in real time, and added ripple effects for water under the dripping particles using a normal map that would grow outward over time.
Substance for Days
I made all of my base materials in Substance Designer. The most important part about creating your materials in Substance is finding reference for the material you are aiming for. Being able to understand how a material ages and how they are made helps ground the material in reality, so it looks more realistic in your scene.
Cast Iron Material
This is the Cast Iron material I created for the Sci-Fi elements in the scene. I found reference from different Cast Iron skillets to find how it would age and the material breakup. Since I had added Material Color variation as a variable in my materials, I was able to create an almost desaturated base color that could be tweaked in engine.
Cast Iron Substance Graph
Here is the Substance graph for the Iron. With Substance, you are able to create a great base material that allows versatility when look deving your material setups. I was able to quickly make changes in Substance, and test in Unreal to capture the mood that I wanted.
Here is the moss material used throughout the scene. I imagined that this scene is within a forest biome, so I found reference of moss in the Pacific Northwest and tried to capture that in my material.
Moss Substance Graph
When creating materials, I try to imagine how I would create it in Zbrush or other sculpting programs. You start with a big shape, and make sure the shape can be read from a distance. Then, start making the details that you would like within the material. With the moss, I made the base shapes and layering first, then found how the fibers and leaves would sit on the moss. Then I added wear and grunge that fit the Fall of Arcadia aesthetic.
Blueprinting and Advanced Materials
I wanted to make the shape of my pipes customizable in real time. To do this, I built the shape first, then created a blueprint that would allow me to manipulate the mesh at each point along the curve.
Pipe Spline Blueprint
Here is the main spline setup for creating the pipes throughout the scene. For the background pipes, I exported them out of Unreal, combined them together in Maya, and reimported them into Unreal to make a better frame rate.
Animations Computer Screen Material
I wanted to make an animated material for the computer screen in my scene, but I had no prior knowledge of the subject. With every project, you run into moments like these, which are great opportunities to add more tools to your toolbox and make yourself a more versatile artist. I researched how to make animated materials, then manipulated it using my own style to create the effect I wanted for the computer screens.
Caustic Light Function
For the Caustic Light Function, I applied my newfound animation knowledge to create a simple animated texture with three different sizes and three different speeds. Creating subtle effects like this adds more to the scene, and makes it feel more realistic.
The mood of the scene relies heavily on the foliage. I have always been fascinated with the idea of nature ascendant over technology and infrastructure. Nature always finds a way to retake environments and I wanted to play with that idea in the scene.
I needed to make multiple vine meshes: some with leaves, some without. Creating the main vine was one of the most time-consuming processes during this project. I tried to find easy ways to place leaves on a branch, but there were no tools that was able to create the looked I wanted.
Therefore, I made the base branches in Speedtree, then hand placed leaves on the branches in Maya. I moved the UVs of the leaves into different sections of the 0 to 1 UV space, to add more variety. For the secondary vines, I placed two planes together at different angles around the centers. I moved the UVs to match the vines on the texture. .
Leaf, Vine and Branch Texture Sheet
I used Quixel Megascans as a starting position for my textures, and tweaked the values in Photoshop and Substance Designer.
After hand placing the leaves and using Megascans, I placed the foilage into the scene to help create a more interesting focal point that will help the lighting lead the eye.
Lighting is one of the most important parts of your scene, and honestly, one of the most fun. As seen in the GIF above, I went through many different lighting scenarios, making sure to find a focal point to draw the eye, and then added falloff in both intensity and color.
Below are the two detail lighting setups for the scene. I wanted the first one to feel like it was taking place at night, and conform to an orange and blue color scheme. For the second, I wanted to create a daytime lighting scenario; almost an opposite of the first scene.
To ensure that the lighting would have seamless transitions between colors, I made sure my fill lights’ intensity and color blended the stationary and moveable lights together, while still ensuring that they illuminated all the necessary details. The toughest parts of creating the lighting passes were keeping the hot spots, while dampening the other lights enough to make a clear focal point, and creating good silhouettes with meshes in the foreground, midground and background.
Night Detail Lighting
Day Detail Lighting
The final renders was then post-processed in Unreal.
There are so many resources out there to create anything you envision and never stop learning. One of the greatest things about this industry is that we always have to be learning something new, and we will never be stuck doing the same thing.
A great piece of advice I have received was to learn to enjoy teaching yourself. School is able to teach you many things, but it is the drive on what you do outside of class that shows your true nature. This piece taught me so much about not just how far I could push Unreal and Substance, but how far I could push myself to never give up on self-improvement.
I wanted to send a special shoutout to Nate Stephens for teaching an amazing class, Kyle Mulqueen and Anton Napierala for helping me with Unreal, all of the amazing students at Gnomon that helped me hone the environment, especially Alison Roberts and Shane Chambers, and also Kirill Tokarev for giving me the opportunity to post on 80 Level