Leah Augustine shared a detailed breakdown of her recent Snowy Forest scene with a feeling of Red Dead Redemption 2 atmosphere.
As I mentioned in my last 80.lv article, I moved to the Atlanta area last year and wanted to find a routine with my job and personal projects. I definitely still haven’t perfected it, but I have found some kind of schedule that has allowed me to work on a few personal projects over the last year.
About the Project
Something I’ve mentioned in my last article and that I still find true is that I like to focus on only a few elements in projects. I’ve discovered that this helps me with time-management and scope. It also allows me to either experiment with something new or to try and improve a specific skill (like lighting, modeling, composition, etc.). It’s easy to overstate or lose steam and this has helped me prevent that.
That’s why for the Snowy Forest scene I decided to work with only a small amount of assets. I wanted to focus mostly on lighting and textures because I really enjoy those two things.
I actually had a hard time trying to figure out what my next project would be. I started by “sketching” out a few small scenes in Unreal with quick block outs and assets I had from other projects. I ended up abandoning these scenes. None of them inspired me and I got tired of them quickly. Part of the issue was that I really didn’t have any direction when starting them and was working off of just a few vague ideas.
After doing a few of those, I honestly got a little frustrated. I often get excited to start a new project and end up jumping right in because I feel motivated to make something. From past experience, I know that when I reach this point it’s good for me to step back and take a small break. During this time I stumbled across this concept by Alfonso Padron Nigro.
I was initially drawn to the composition, but the concept also encompasses a few of the ideas I was experimenting with: rock formations, vegetation/trees, and water. I really liked the mix of snow and natural landscape and thought it could be a good challenge. Both are something I haven’t done that much work within my personal projects before.
Now that I had a more clear vision of what I wanted to achieve, I started to gather references. This is when I remembered the more snowy areas in Red Dead Redemption 2.
I felt like this was a good target to reach. When I was playing Red Dead I was blown away by the lighting and atmospherics. It made me feel immersed in the world. I genuinely felt cold whenever I was in any of the snowy areas in the game. I decided to make it a goal to try and capture a similar feeling in this project.
With a more clear goal in mind, I gathered images to create a reference sheet, something I didn’t do for those “sketches”. I usually start with Pinterest. Pinterest is great. It’s where I store all my disorganized ideas for projects. It’s really easy to start with one image and find other similar ones and save them all into one board. You can find a great mix of photography, film stills, in-game screenshots, etc.
Once I get a collection, I then comb through them and build a single reference sheet in Photoshop with the most helpful or relevant images.
Looking at these pictures helped me better understand the tone and general look I wanted to achieve. I also found other games or 3D environments that I wanted to use as a visual reference for quality. This gave me a better context for what’s achievable to today’s standards and by studying them I was able to figure out how those environments were potentially built. This helped give me some ideas on what kind of assets I’d need as well.
I first started by creating a really simple terrain in World Machine. There’s really nothing fancy about it, just a good mix of relatively flat areas and hills. I mostly wanted something to create a strong base for my scene. When I was finished with it, I exported out the height map and used it with Unreal’s landscape tool.
With the landscape in place, I was able to look around the map and find an area that would be a good place to set my scene. I always start with blocking out the major shapes so in this case the rocks, trees, and the boat (as this was an important focal point). Something to note is that there are only five large rocks being used in the scene. I’ll talk a little more about them later in the article.
To the right in the above image, you can see my reference for scale. This is really important as it helps you better understand your dimensions and space. Always set up your scale first thing before modeling. I recommend saving some kind of asset that can potentially be reused on different projects. I exported out the default UE4 character model a while back and now I use it for all my Unreal projects.
When I’m happy with the initial composition, I usually set up a camera or two. Since I knew the intent of this project was to be a portfolio piece, I focused most of my efforts on making sure these shots looked good. I referred back to them often. Another benefit of having some cameras set up early is that it helps me evaluate my progress. I can easily scrub through past screenshots and see my changes.
From there the blockout tends to be rather iterative for me. I keep my lighting basically at default, with just a directional light, skylight, and default skysphere. I try to work large to small, focusing on key areas. I’ll also bounce around between modeling, texturing, and lighting. I usually have a rough plan of what needs to get done, but I keep myself flexible to whatever I feel like that day. It helps the project stay fun.
After creating a short asset list, I tend to work from biggest to smallest – just like I do for my blockout. All the modeling in this project was relatively simple. I used Maya for block outs, low poly, and UVing and ZBrush for my high res meshes.
I started with the rocks. They were modeled in ZBrush, decimated, and UVed in Maya. They ended up being a bit of a challenge. Rocks are deceptively hard to get right since it’s easy for me to noodle away at them too much.
What I found helpful while sculpting is to remember to keep your shapes large and easily readable. This is for two reasons: firstly, with larger shapes, it is easier to reuse, rotate, and repeat the same meshes and get more mileage out of them. And then secondly, you can get your smaller details from your textures by using a detail normal anyway.
Rocks in the final scene:
For more tips on rocks, I suggest checking out this 80.lv article by Eduard Grechenko. He talks about techniques he learned while sculpting rocks. He also lists some great resources by other artists that I would recommend.
Snow and Ground Details
I knew early on in my blockout that I would want to close up detail shots. This meant that I needed some kind of asset to help add extra interest to the ground cover and to help transitions between the snow, landscape, and other assets.
For this, I created a few simple meshes in ZBrush. They were quick sculpted focusing on just the large shapes. Similarly to the larger rocks, I wanted to make sure the forms would look good rotated and repeated. From there I decimated them and UVed them in Maya.
To help with blending the meshes together, I used DitherTemporalAA. I plugged it directly into the PixelDepthOffset of my snow material. It really helps with softening the hard edges you get when overlaying meshes on top of each other. While it creates a great effect, it can be expensive. Since I wanted this to be a portfolio piece I decided that the visual impact outweighed the performance cost.
Materials & Textures
In total, I have four main master materials for this scene. One for the ice, another for the foliage, the third for the landscape, and then one for everything else. For the most part, all the assets use three textures: Albedo, Normal, and a packed map (for this project, I did Height, Roughness, and AO).
This material is what’s used on 90% of the assets in the scene and uses tiling textures. All the textures except for the ice and foliage were created in Substance Designer. The material has some basic parameters for making adjustments to roughness, albedo tint, normal intensity, and the option to blend the second normal map. The secondary normal was great for adding extra detail to the rocks and snow. There’s nothing fancy in here aside from the DitherTemporalAA and the snow material function, which I’ll talk about next.
The snow textures were created in Substance Designer and are honestly quite simple. I think the material in Unreal is what really brought them to life. The snow material is set up as a material function that’s a part of the base material. Within it, I have a few basic parameters, similar to that in the base material.
When creating the snow textures in Substance Designer, I also created a detail normal of simple noise that I used in conjunction with the base normal. I found that when you use subsurface you tend to visually lose normal information, flattening out your material. Since I knew I wanted close up shots, I wanted to exaggerate the normals a bit more to counteract this.
I personally think that a detail normal and subsurface scattering is what helped achieve more realistic snow for this project. Subsurface, in my opinion, really brought it all together. It helps give the snow better highlights around the edges and creates the appearance of light shining through it. Subsurface can be costly, but it does make a difference.
Something I also added to the snow material is the ability to use world align. This allows the snow to always sit on top of an asset. It makes populating the scene easily, as every asset automatically has snowed applied to it if I want it to. You can best see this on the rocks and trees in the scene. In Unreal, there’s a default node called “World Aligned Blend”. In it, you can specify a blend vector, sharpness, and bias.
For a more in-depth look at how to create a similar material that uses the World Aligned Blend node, the video below is great. It goes through how to set up a world aligned moss material for rocks, but the same idea can apply to anything – snow, dust, etc.
As mentioned, the snow is a material function. I’m a fan of using material functions because they help simplify complex materials and can be reused. They can sometimes seem intimidating, but they are really quite easy and intuitive once you start using them more. Unreal has a lot of built-in material functions already in the engine content. If you open them up you can see how they are built, which can help you learn how to create your own.
If you want to learn more about creating material functions, I suggest checking out this 80.lv article by Clinton Crumpler. He goes over how to create one from scratch if you’ve never made one before.
Also, I want to give a special thanks to my friend and coworker, Clay Slover. I’ve picked up quite a few tricks regarding materials and especially material functions from him.
The ice material in this scene uses Parallax Occlusion Mapping to help give it some fake depth (you can alternatively use BumpOffset for a similar effect). Parallax Occlusion Mapping (POM) is a really cool node inside of Unreal. It can pretty effectively fake the look of 3D depth in a surface by using a height map. The ice shader is completely opaque.
The textures for the ice were taken from textures.com with some adjustments made in Substance Designer to help emphasize the roughness, add more frostiness to the albedo, and exaggerate the height a bit more for use with POM.
I also added the ability to vertex paint in the snow to the ice, using the height map of the ice as a mask. It was a nice way to help blend the transition between the ice and the landscape.
Vegetation is something I really want to work more on and think I need some improvement in personally. The plants in this scene were built using a combination of photo sourced textures or hand sculpted by me in Zbrush. I also used a free program called TreeIt to generate the trees. TreeIt is like a very simplified version of SpeedTree, but it tends to need a bit of cleanup.
The tree branches and leaves were sculpted in ZBrush. I started from ZSpheres to build out the branch. I also sculpted the leaves in ZBrush and populated them along the branch by simply duplicating and hand placing them. I then baked and textured my branches in Substance Painter. The snow was textured onto the branches as well inside of Painter.
The shader inside of Unreal is pretty simple. I have Subsurface Scattering on the foliage, similar to the snow, as well as a Wind node. The Wind node creates the illusion of movement and brings a lot of life to the environment.
The movement really helps bring life to an environment. Even things as simple as subtle, ambient dust can really make a difference in my opinion. I knew things like snow and fog would make a huge impact on this project and bring everything together.
All effects in this scene were either from Unreal’s Particle Effects project or the Elemental Demo, both of which are free and great resources to learn from. I’ve had a little experience creating particles within Unreal, but it’s something I don’t particularly focus on as an Environment Artist and wasn’t the main goal for this project. I think often artists tend to feel the need to create every aspect of a project. While I don’t discourage anyone from that challenge, there’s nothing wrong with using assets from other projects as long as proper credit and/or permission is given.
Lighting & Cameras
Normally, I build lightmaps and bake my lighting in my Unreal projects. For this one, I wanted to try something a little bit different. This scene is using dynamic lighting. I did this because I wanted to save a bit of time with baking. I also potentially might try setting up different lighting scenarios and conditions in the future.
The lighting in the scene is pretty simple. There’s a Directional Light for the Sun, a Skylight, Atmospheric and Exponential Fog, and a few point lights to help emphasize some areas. The point lights are set up on different lighting channels to fake a rim light effect.
The Exponential Fog is what’s giving the haze in the far distance. I exaggerated the opacity of it to help close the scene in. I felt like this helped with focusing on the scene. It also had the added benefit of making the scene feel colder as well.
The post-processing in this scene is also fairly simple. I used it mostly to help add a bit of saturation and to add more cool tones.
I know I didn’t go in depth with my lighting, so for those who want to learn more I’ll list a few lighting resources:
- This 80.lv article by Abigail Jameson. She talks a bit about her process and gives some helpful tips.
- In it, she also mentions this great talk from Boon Cotter. It’s more of an overview of being a lighting artist, his career, and his advice to aspiring lighting artists, but I found it extremely informative and interesting. If you’re interested in becoming a lighting artist, then definitely watch this.
- And finally, the Unreal 4 Lighting Academy videos by Tilmann Milde. Just watch them. He shows you how to not only improve your lighting but better understand the more technical aspects behind it. I like that his videos show him lighting a scene, his thoughts while doing so and that he shows any issues that come up and how he problem-solves them.
I like to use Unreal’s Cine Camera Actor for my screenshots and GIFs. The Cine Camera Actor has settings in it that are found in actual cameras. I especially like the camera’s focus settings. It’s very easy to get a nice Depth of Field in your shots by simply dragging and dropping the eyedropper icon.
This project ended up being really fun. I really enjoyed trying some new things and I feel like I hit a personal milestone with this scene.
I hope this breakdown was informative. I feel like I’m still learning myself, but I tried to include as many resources as I could. Hopefully, those resources are helpful to others. Please feel free to contact me if you have any questions or feedback!
If you want to see more of my work, please check out my Artstation.
And finally, I want to thank 80.lv for reaching out to me and letting me share my process with you all.
Interview conducted by Kirill Tokarev