So this is the Landscape Material as I mentioned and I generally try to expose as many features/options as possible without making the shader completely destroy your performance. Static float values and vector values are ever so slightly cheaper for performance and so try to use static values when you can. Here we can see that I allow the user to adjust the texture tiling, the tessellation scale, blend contrast of the blend mask. The blend contrast value adjusts how sharp or soft the blend is between the different layers. And maybe you can imagine what some of the other values mean based off of their names, but hopefully this give you a better insight to my workflow and trying to ensure customizability and flexibility while you’re working. Because being able to change things really quickly and on the fly is always helpful for both art production as well as game production.

We’re incredibly interested in the production of the snow material itself, because it looks very realistic. Could you talk a tiny bit about the production of this element? how did UE4 and Substance work together on snow? Did you have to do a lot of additional tweaking?

There wasn’t actually a ton of tweaking to make this work the way that I had wanted it to. The basics of the shader are all right there in the engine. It uses “Subsurface Scattering” to give the snow highlights around the edges where light would show through the thinner areas of the geometry. It also has a tessellation applied to the material to allow the landscape to conform better to the mounds, valleys, and chunks in the snow. Then I am layering a “snow flake” detail normal map on top to give the snow a secondary level of detail that I can tile across the snow infinitely for super fine close up shots. There is also another layer of “snow speckles” on top of the snow to give the tiny glints and glimmers off the snow as if it has tiny reflections off of each little snowflake on the ground. This is pretty common from what I have seen in game productions at all of the companies I have been at. Layering some type of tiling snow speckle on top for the roughness/specular of the snow. This combined with the subsurface effect are really what are pushing the realism, while everything else just adds subtle hints of realism on top. Lastly the snow also has a “blend mask” that I created that allows the snow to blend better with the forest ground and ice layers. All of these maps were created inside of Substance and simply imported into the Unreal Engine. They didn’t require any additional tweaks to themselves, only with some of the shader settings that I had setup for each of them. As I mentioned in the previous section. But let me talk about blend maps here for a second, because I think they are actually extremely helpful in making your landscapes look more realistic.

Normally in the Unreal Engine everything just simple blends into each other with a gradient. When you use a “Blend Mask” you can specify a bit better how quickly parts of the shader blend into the layer below it. If you have rocks, you can make those a brighter white in your shader so that they are the last thing to blend out. It will help the rocks to feel like they are sitting on top of the ice, snow, grass, or whatever layer they are above. This applies for everything of course. If you want grass to blend better, then you can make the blades of grass a bit whiter in the blend mask and the dirt underneath to be a bit darker so that the grass is the last thing to fade out as you vertex paint your landscape. As you can see, generally the things that are “higher” in your texture are the last things you want to fade out, so the easiest blend mask you can use is simply to plug in your textures height map into the “height-blend” option of your Unreal Landscape Material. Then starting from your height map as the base for your blend map, you can always tweak it so things blend however you want them.

As a rule of thumb I always recommend to NEVER use black in your blend masks, because it can sometimes cause the layer to fade out before the layer underneath has been painted on properly and so your landscape is left with completely black spots where no shader exists at all. Your top layer has already blended out and the bottom layer hasn’t even blended in yet without enough painting information from your landscape. Perhaps if you haven’t used the landscape tools in Unreal that concept might seem a bit abstract, but just go ahead and paint black into all of your Blend Masks and I think you’ll start to see what I mean hahaha. There are ways around this, such as setting a “base texture” for your landscape wherever there is no painting information on the landscape, but all of these things add instructions to your landscape material, which increase performance cost, and so it’s better to just paint your blend masks in a smart way that makes it so you don’t require “fixes” like this to begin with.

Don’t forget about optimization while you’re doing all this! Even though we want things to look good, optimization still always lingers in the background lol