In this lesson, you will learn how to leverage procedural landscape brushes and layers to build highly iterative, non-destructive terrain shapes within your World Partition environment.
Understanding Non-Destructive Sculpting
Traditional sculpting tools modify the raw heightmap data directly, making it difficult to revert or adjust specific features once the terrain is "baked" into the base layer. Procedural heightmap layers solve this by treating terrain features—like mountain ranges, canyons, or flat plateaus—as individual, stackable layers that sit on top of the base terrain.
By using the Landscape Blueprint Brush system, you can define terrain shapes using mathematical noise, spline data, or even vector patterns. Because these are procedural, if you decide your mountain pass is too steep, you simply adjust the parameters on the layer, and the terrain updates in real-time without you ever having to manually re-sculpt the geometry.
Implementing Procedural Layers
To begin, create a Landscape Blueprint Brush and assign it to your Landscape actor. Within the brush’s graph, you can use the Render function to manipulate the heightmap. A common approach for iteration is to use a Layer Blend node to mask where the procedural effect is applied:
// Logic conceptually implemented inside the Brush Blueprint
// Use a noise node to generate vertical displacement
float NoiseValue = PerlinNoise(WorldPosition * Scale);
// Apply a mask to ensure the procedural change only affects specific areas
float FinalOffset = NoiseValue * MaskTexture.Sample(UV);
// Return the result to the landscape height output
return FinalOffset;
This workflow is essential for World Partition-based maps where you may have multiple environment artists working on different sectors. By stacking these procedural layers, you can maintain a "master" base landscape while layering specific biomes or geographical features that can be toggled, blended, or swapped instantly during world design. This modularity ensures that your terrain remains flexible throughout the entire development lifecycle, allowing for rapid iteration on silhouette and traversal paths without risking the integrity of your core landscape mesh.
Key Takeaway: Utilizing procedural heightmap layers allows you to design complex, iterative terrain shapes that remain modular and non-destructive, enabling rapid adjustments to your environment without permanent data loss.