This snowy, mountainous environment was created to showcase what you can do with the Landscape and foliage tools in Unreal Engine 4. The terrain is roughly 5km by 5km in size, consisting of tall peaks, winding valleys, frozen lakes and forests made up of thousands of trees.
Shaping the Landscape
The heightmap and layer masks in this scene were created using World Machine, a procedural terrain generation program that can simulate erosion, snowfall and various other effects to help produce a realistic-looking environment.
Once they’d been generated in World Machine, the textures for the terrain’s heightmap and layers were imported into the editor via UE4’s Landscape system. Then, additional sculpting and layer painting was completed using the Landscape tools to adjust certain areas.
The Landscape Mountains material, created by artist Ryan Brucks, was set up to blend between sets of rock, grass and snow textures using Landscape’s layer masks. Several material functions were also created to help the layers blend together more naturally based on texture information, and to reduce the appearance of tiling in the distance.
Clusters of trees and rocks were added using UE4’s foliage tool, which is designed to allow rapid painting of hundreds of meshes onto a surface with randomized ranges for scale, orientation and other settings. The foliage tool can also use a Landscape layer as a mask – for example, if you want certain foliage meshes to only appear on the grass layer on the Landscape, they won’t be placed on areas with rock or snow as you paint over an area.
The other advantage that the foliage system offers is that it uses instanced static meshes, which are automatically grouped into clusters. Each cluster only requires the number of draw calls for a single mesh instead of one for each, reducing rendering cost.
In this case, further optimization was achieved by setting up LODs for the tree meshes, with the least detailed LOD mesh being a flat billboard. These features enabled me to create relatively dense forests that are very cheap to render when viewed from far away.
The billboard mesh for the trees is actually a thin strip consisting of just two triangles which are stretched out to a specified width using the “SplineThicken” material function. This function enables the billboards to always face the camera while maintaining their orientation along the axis of the spline, staying upright when viewed from above. In the image above, you can see that the distant trees appear as thin lines in wireframe mode.
Exploring the Landscape
Finally, I wanted to provide a fun way explore Landscape Mountains, so I put together a hang glider Blueprint. The hang glider can be flown freely around the environment, gaining speed when swooping downwards and slowing down again when climbing. To add a bit of a challenge, I also added glowing rings that provide a brief speed boost when flown through. Using the rings and a bit of skilled flying, it’s possible to reach some impressive altitudes.
We hope everyone is enjoying this new sample with the release of Unreal Engine 4.4. Feel free to leave any feedback or questions in the comments here.