Overview — Material Graph Full master material node graph screenshot

Overview

For this project, I developed a reusable Landscape Master Material in Unreal Engine designed around a modular layer-based workflow. Instead of building each terrain material independently, the system separates the landscape into multiple layers and provides a consistent set of controls for each one. These layers can then be blended according to landscape paint masks, slope, and altitude, allowing the terrain to transition naturally between different materials.

The system also incorporates near, mid, and far texture variation, macro color breakup, material adjustments, displacement, and Runtime Virtual Texture integration.

Modular Material Layers

The master material is organized into four main terrain layers:

  • Base Layer
  • Sloped Layer
  • Top Layer
  • Bottom Layer

Each layer uses the same underlying material function, making the system easier to maintain and allowing parameters to be exposed consistently. Each layer can independently control: Albedo / Color, Normal, ORM, Displacement, UV scale, Macro color variation, Brightness, Contrast, Saturation, Tint, Normal intensity, Ambient Occlusion, Roughness, Metallic.

MF_LandscapeMat — Inputs Material function node breakdown
Layer Parameter Exposure Material instance parameter list

Slope & Altitude Blending

One of the main goals was to avoid relying exclusively on manually painted landscape masks. The Mask Control section combines several sources of information to determine which material should appear on the terrain.

Slope

The terrain's surface orientation influences material distribution. This makes it possible, for example, to introduce a different material on steep surfaces while retaining another on flatter areas.

Altitude

Height-based masks provide additional control over where materials appear vertically across the landscape. The altitude masks can be further adjusted through exposed parameters, allowing the transition between materials to be tuned without modifying the underlying shader.

Slope + Altitude Blending in Viewport Side-by-side: painted mask vs procedural blend result

Near, Mid & Far Variation

A single texture scale across an entire landscape can quickly become repetitive, particularly in large environments. The material function separates texture variation into near, mid, and far representations. Different texture scales and variations are used depending on camera distance, maintaining detail close-up while preventing obvious repetition further away. A camera-distance fade mask controls the transition between these representations.

Without Distance Variation Tiling visible at mid/far distance
With Near / Mid / Far Variation Clean result across all distances

Macro Variation

The material uses a separate macro color pattern to break up large areas of uniform color. The macro pattern operates at a much larger scale than the primary surface textures and can be adjusted through parameters: Macro Color Size, Macro Color Pattern, Macro Color Strength.

Macro Variation — Before / After Comparison showing color breakup on large terrain sections

Material Adjustments

Rather than modifying textures externally for every environment, the master material exposes several artistic controls directly to the material instance. Color controls include: Brightness, Contrast, Saturation, Tint. Alongside these, exposed parameters for: Normal Intensity, Ambient Occlusion Intensity, Min/Max Roughness, Min/Max Metallic.

Material Attributes & RVT

Individual layers are processed as Material Attributes, allowing different properties of each material to be blended as a single unit. The final material attributes are also written into a Runtime Virtual Texture together with: Base Color, Roughness, Normal, World Height, and Displacement. This allows the landscape material to participate in a broader environment workflow where other assets can sample terrain information.

RVT Output Channels Runtime Virtual Texture debug view

Technical Structure

The overall structure was designed around reusable material functions rather than keeping the entire shader inside a single graph. The main material acts as the central layer-management system, while MF_LandscapeMat encapsulates the repeated material logic used by each terrain layer.

Landscape Layers Near / Mid / Far Variation Macro Variation & Adjustments Slope / Altitude Masking Material Attribute Blending Final Landscape Material RVT Output
// Technical Highlights
  • Modular landscape layer architecture
  • Reusable Material Functions
  • Slope-based material blending
  • Altitude-based material blending
  • Landscape paint masks
  • Near / Mid / Far texture variation
  • Macro texture / color breakup
  • Artist-facing material parameters
  • Material Attribute workflow
  • Displacement support
  • Runtime Virtual Texture integration
  • World-height data output
  • Designed for reuse across environments