UE4 - Forest Environment

Position: Individual Project

Engine: Unreal Engine 4

Development Time: 4 months

Synopsis: To further my skills post-graduation, I took to studying some of the latest features available to Unreal Engine 4 and have created a small exterior scene to demonstrate what I’ve learned.

Overview

This is a short showcase of a recent UE4 project scene I've been working on.

This was the result of my recent self-study into some of the latest UE4 technologies such as:

  • Runtime Virtual Textures

  • Volumetric fog and lighting

  • Landscape Mesh Brushes & Auto-material design

  • Grass types & Foliage layers

  • Exterior lighting and post processing.

  • Asset blending & recoloring

Screenshots


Breakdown of Techniques Used

Foliage: Hue shifting & Tinting

To make the most out of a limited number of assets I found it was beneficial to up the amount of variation present.

In addition to the standard variance in scale and rotation provided by the foliage tool, I opted to slightly tint & hue-shift the foliage materials to create a more realistic environment.

There are relatively few foliage models seen here: (1 grass, 1 tree, 1 bush, 1 basket grass, and 1 purple flower - just 5 total!)

Because of the way megascans models are imported, I was further able to modify the master material to instantly apply these edits across all of my foliage types.

Landscape: Brushes & Auto-material

This was a really cool feature to learn. Using landscape brushes, mountains can be made incredibly fast! While I did spend time learning best practices and techniques for hand-sculpting terrain, I also wanted to dive into some of the latest methods of terrain sculpting.

Landscape brushes are incredibly powerful because they allow you to dynamically edit and move the terrain based on defined parameters - what might normally require an entire re-sculpt is now instantaneous!

Finally, as the auto-material is defined based on slope intensity, it simultaneously updates alongside the geometry!

Landscape: Automaterial

The automaterial can also be used for more than just texture painting!

For example, when combined with Landscape Grass Types, the same parameters that are defined to determine what texture gets painted where (primarily slope), can be re-used to also define which foliage types get painted where!

For my project, I used this for the grass as it was the most prevalent. This was an incredible time saver as I no longer had to paint grass precisely where I wanted, and allowed me to spend my time painting foliage how I wanted elsewhere (such as for the trees, bushes, etc.)

Automaterial Improvements: Tiling Reduction

One of the big issues that landscape materials often face is texture tiling.

Regardless of the material’s quality, at large distances, the material’s repetitions become exaggerated resulting in the strong appearance of tiling.

To counteract this, it is beneficial to not only introduce macro-variation (such as a blended texture with random dark splotches), but to also introduce dynamic texture scaling that can scale the texture based on the distance to the camera. This lets high-details be preserved at close-range, while reducing tiling from afar.

Asset Blending: Albedo Tint

On individual projects without an artistic lead, often assets from several different packages need to be combined to create a meaningful scene. This can be challenging as many of these assets might have different art styles or colors.

One useful tool is to simply tint the albedo of the assets to be closer to the dominating feature of the scene (in my case the many trees).

The end result is that these assets stand out much less when in a complete scene.

Asset Blending: Runtime Virtual Textures

Runtime Virtual Textures are a way to blend textures together. In my project, I used them to help blend the 3D assets of my scene to the textures of the terrain I had found. This is a particuarly powerful feature as it works regardless of elevation and works regardless of the texture being blended underneath the asset.

The effect is most noticeable when blending two very different textures, but can be tuned down to work excellently in blending already similar textures.

I found it most useful in hiding the sharp edges of the various assets to avoid an “asset-crashing” look to my scene.