Seasonal Material System

For my first tech art project, I wanted to create a material system that would allow the user to adjust the season and precipitation amount on the fly. This is to showcase some of what I've learned over the last few months of self-directed study of UE5 materials. The scene is downloaded from Megascans, and my material functionality slots into the existing material setup.

The foliage cycles through the seasons using WPO in Tangent Space to "grow" the leaf. Then the colour is offset toward brown and the leaves droop. Each leaf has a random alpha value in the vertex colour, used . The exact values are determined by Curve Atlases. This system doesn't work on the lowest LODs that use billboards.

The precipitation level varies the base colour value, saturation and the roughness. At a higher precipitation value, puddles are introduced through a noise texture. During the winter, snow textures are composited into the Material Attributes using a Z angle mask, whose threshold is again determined by a Curve Atlas.

The water is a translucent shader, but is opaque and uses SceneColour for the base colour. The UVs for SceneColour are offset in screen space to simulate refraction.

Season Pricipitation System

Season Pricipitation System

Overview

Season material instance controls

Foliage material

Foliage material

Precipitation

Ground material

Ground material

Vertex colour functions

Vertex colour functions

Water material

Water material