World Partition and PCG Highland Forest

Configure World Partition streaming and build a PCG forest in UE 5.7.

Introduction

30 Second Summary

Open world games let you walk for miles without ever hitting a loading screen. Behind the scenes, the engine is constantly deciding what to load and what to throw away based on where you are standing.

In this project, you will configure World Partition level streaming and build a procedurally generated Highland forest in Unreal Engine 5.7. You will sculpt a landscape, scatter vegetation using the PCG framework, and optimize performance with cull distances and streaming debug tools.

What You'll Build

A streaming Open World level set in the Scottish Highlands, with procedurally generated forest vegetation and optimized World Partition grid cell streaming.

By the end of this project, you'll have:

  • A World Partition-enabled Open World level with a sculpted Highland landscape and configured grid cell streaming that loads and unloads cells around the player.
  • A PCG graph that procedurally scatters trees, rocks, and bushes across the terrain using Surface Sampler and Static Mesh Spawner nodes.
  • Cull Distance Volumes and streaming debug visualization to optimize performance and verify that cells stream correctly at runtime.
  • Secret Mission: Add slope-based filtering so trees grow only on flat ground and rocks appear on steep slopes.

Are there any prerequisites?

You need Unreal Engine 5.7 installed via the Epic Games Launcher before starting this project. No additional plugins or downloads are required.

Create an Open World Project and Explore World Partition

Before you can populate a Highland landscape with forests, you need a level that supports large open worlds.

Unreal Engine's World Partition system divides a world into grid cells that load and unload automatically as the player moves. In this step, you will create a project with World Partition enabled, set up an Open World level, and explore the editor tools that show how the grid works.

In this step, get ready to:
  • Create a new UE 5.7 project using the Third Person template.
  • Create an Open World level with World Partition, Nanite, and Lumen pre-configured.
  • Explore the World Partition Editor to load and unload grid regions manually.
Create a new Third Person project in UE 5.7

The Third Person template gives you a playable character out of the box, so you can walk through the world and test streaming later. Templates in the Games category come with World Partition enabled by default, which saves you from configuring it manually.

  • In the Epic Games Launcher, find Unreal Engine 5.7 and click Launch.
  • The Project Browser opens. Select the Games category on the left.
  • Select the Third Person template.
  • Make sure Blueprint is selected as the project type.
  • Enter a project name, such as HighlandForest. Avoid spaces in the name.
  • Click Create.

Unreal Engine generates the project and opens the editor. This may take a minute or two depending on your machine.

What is World Partition?

World Partition is Unreal Engine's automatic data management and streaming system for large worlds. It stores the entire world in a single persistent level, divided into grid cells.

At runtime, only the cells near the player are loaded into memory. As the player moves, new cells stream in and distant cells stream out. This removes the need to manually create and manage sublevels.

Unreal Engine won't launch?

Make sure UE 5.7 is fully installed in the Epic Games Launcher. The Launch button should be active, not grayed out.

If the editor crashes on startup, check that your GPU drivers are up to date. UE 5.7 requires DirectX 12.

help me troubleshoot launching Unreal Engine 5.7 from the Epic Games Launcher

Create an Open World level

The default Third Person level is a small test area. For your Highland landscape, you need an Open World level that comes with a full-sized terrain and World Partition features ready to use.

  • In the Unreal Editor menu bar, click File.
  • Click New Level.
  • Select Open World from the list of map types.
  • Click Create.

A new level loads with a landscape, atmospheric lighting, and sky. You should see terrain stretching out in the viewport.

What comes with the Open World level?

The Open World template pre-configures several systems for you. World Partition divides the world into streamable grid cells. Nanite handles high-detail mesh rendering. Lumen provides real-time global illumination.

Starting from this template saves you from manually enabling and configuring each of these features.

  • Save the level by pressing Ctrl+S.
  • Name the level Highland and click Save.

Still seeing the small Third Person test area?

Make sure you selected Open World in the New Level dialog. Other map types do not include the default landscape that World Partition uses for streaming.

help me create an Open World level in Unreal Engine 5.7

Explore the World Partition Editor window

The World Partition Editor gives you a top-down view of your entire world, showing how it is divided into grid cells. You can use it to manually load and unload regions while editing.

  • In the menu bar, click Window.
  • Hover over World Partition.
  • Click World Partition Editor.

A new panel opens showing a grid of your world. Each rectangle represents a cell that can be loaded or unloaded independently.

What are grid cells?

World Partition divides your level into a grid of cells. Each cell is a self-contained chunk of the world. At runtime, only the cells near the player's streaming source are loaded into memory.

By default, the Player Controller acts as a streaming source. Cells within the loading range are streamed in, and cells outside it are streamed out. You will configure these values in the next step.

Now try manually loading and unloading a region to see how it works.

  • In the World Partition Editor panel, click and drag to draw a selection box around a group of cells.
  • Right-click the selection and choose Load Region from Selection.

The selected region's landscape tiles load into the main viewport. You should see terrain appear in the corresponding area of your 3D view.

  • Select the same cells again, right-click, and choose the unload option from the context menu to remove them from the viewport.

The terrain disappears from the viewport. This is exactly how streaming works at runtime, just handled automatically based on distance from the player.

Use drag-select for cells

Always click and drag a selection box in the World Partition Editor to reliably highlight the cells you want. Single-clicking may not select cells consistently.

  • Load a region again so you have visible terrain in the viewport for the next step.

Don't see grid cells in the World Partition Editor?

Make sure you created the level using the Open World map type from File > New Level. The default Third Person level does not include a landscape with spatial grid cells.

If the panel appears empty, try saving your level first with Ctrl+S, then close and reopen the World Partition Editor window.

help me troubleshoot an empty World Partition Editor in UE 5.7

Your Open World level is ready with World Partition configured. Next, you will sculpt the landscape into rolling Highland hills and configure the streaming grid settings that control how cells load and unload at runtime.

Sculpt the Highland Landscape and Configure Streaming

Your Open World level is set up with World Partition dividing the world into grid cells. Now you need to shape the terrain into the rolling Scottish Highlands and configure how those cells stream in and out around the player.

In this step, you will sculpt the default flat landscape into Highland hills, paint a basic material layer, and then tune the World Partition grid settings so cells load at the right granularity for a small game map.

In this step, get ready to:
  • Sculpt rolling Highland hills across the landscape using the Landscape sculpt tools.
  • Configure World Partition cell size and loading range for a small game map.
  • Verify grid cell streaming at runtime with a debug overlay.
Sculpt the Highland terrain

The Open World level comes with a flat default landscape. You need to shape it into the kind of rolling terrain you would see in the Scottish Highlands.

  • Switch to Landscape mode by clicking Select Mode in the Main Toolbar and selecting Landscape.
  • You can also press Shift + 2 as a shortcut.
  • In the Landscape panel, click the Sculpt tab to enter Sculpt mode.
  • Select the Sculpt tool from the list of sculpt tools.
  • Set the Brush Size to a large value (around 8000 to 12000) to create broad, sweeping hills.
  • Hold the left mouse button and drag across the landscape to raise the terrain into rolling hills.
  • Hold Shift + left mouse button to lower terrain and carve valleys between the hills.
  • Create 3 to 5 gentle, rolling hills across the landscape to simulate Highland terrain.

Use the Smooth tool

After sculpting your hills, switch to the Smooth tool in the Sculpt tab and brush over any jagged edges. This blends the transitions between hills and valleys for a more natural look.

  • Once you are happy with the shape of your hills, switch to the Paint tab in the Landscape panel.
  • The Open World level includes a default Landscape Material with paint layers. In the Target Layers list, you should see available layers.
  • Select a grass layer and paint it broadly across the flat hilltops and gentle slopes.
  • Select a rock layer and paint it onto the steep sides and valley bottoms where rock would naturally be exposed.

Why paint material layers?

Material layers let you blend multiple textures (grass, rock, dirt) across the terrain surface. Painting different layers on different slopes gives your landscape visual variety and makes the environment feel more natural.

For this project, a rough grass-and-rock pass is enough. The focus is on World Partition streaming and PCG, not on building a production-quality material.

Press Ctrl + S to save your level. You should see rolling hills with grass and rock textures applied across the landscape in your viewport.

Landscape looks flat after sculpting?

Make sure you are in Sculpt mode, not Manage mode. If the Landscape panel shows New options for creating a landscape, you are in Manage mode. Click the Sculpt tab instead.

Also check that your Brush Size and Tool Strength are not set too low. Increase both values and try again.

Help me debug my Landscape sculpting in UE 5.7.

Configure World Partition cell size and loading range

World Partition divides your level into grid cells that stream in and out around the player. The two key settings are Cell Size (how large each cell is) and Loading Range (how far away cells start loading).

  • Switch back to Select mode by pressing Shift + 1 to exit Landscape mode.
  • Open the World Settings panel. If it is not visible, go to Window > World Settings.
  • Scroll down to the World Partition Setup section.
  • Locate the runtime grid settings. The default Cell Size is 25600 units (256m). The default Loading Range is 76800 units (768m).
  • Change the Cell Size to 12800 (128m). This gives finer streaming granularity for a small game map.
  • Leave the Loading Range at 76800 (768m). This default range works well for this level size.

What are Cell Size and Loading Range?

Cell Size determines how the world is divided. A smaller cell size like 12800 (128m) means more cells, each covering a smaller area. This lets the engine load and unload content in smaller pieces as the player moves.

Loading Range defines how far from the player cells begin to load. At 76800 units (768m), the engine starts loading cells about three-quarters of a kilometer ahead of the player.

Why reduce cell size for a small map?

The default 256m cell size is designed for massive open worlds. On a smaller level, each cell holds a large chunk of the world. Reducing to 128m lets the engine be more selective about what it loads, which is better for a focused Highland practice level.

Press Ctrl + S to save your level with the new grid settings.

Verify streaming with the debug overlay

To confirm that cells are actually streaming in and out around the player, you can enable a debug overlay that draws the grid cell boundaries at runtime.

  • Press the Play button in the toolbar to start a Play In Editor session.
  • Once the game is running, press the ~ key (tilde) to open the console.
  • Type the following command and press Enter:
wp.Runtime.ToggleDrawRuntimeHash2D

What does this command do?

The wp.Runtime.ToggleDrawRuntimeHash2D command draws a 2D grid overlay on the screen showing the boundaries of each World Partition cell. Cells that are currently loaded appear in green. As you move your player character, you will see cells ahead of you load in and cells behind you unload.

  • Walk your character around the landscape using WASD.
  • Watch the debug overlay as you move. Green cells are loaded. Cells further away should not be highlighted, meaning they are unloaded.
  • Walk a long distance in one direction to see cells behind you unload and new cells ahead of you load in.
  • Press Esc to stop the Play session when you are done observing.

You should see the 2D grid overlay with cells loading and unloading around your player character as you move across the Highland landscape.

Don't see the grid overlay?

Make sure you typed the command exactly as wp.Runtime.ToggleDrawRuntimeHash2D. The command is case-sensitive. Also confirm you pressed Enter after typing it.

If the console did not open, try pressing ~ (tilde) again. On some keyboard layouts, the console key may be different.

Help me get the World Partition debug overlay working.

Your Highland landscape is sculpted and World Partition is configured for fine-grained streaming. Next up, you will build a PCG graph that procedurally scatters an entire forest across this terrain.

Build a PCG Graph to Scatter Forest Vegetation

Your Highland landscape is sculpted and World Partition is streaming cells around the player. Now it is time to populate that landscape with a forest.

Placing thousands of trees, rocks, and bushes by hand would take hours. Procedural Content Generation (PCG) solves this by generating objects from a graph of rules. In this step, you will build a PCG graph that automatically scatters vegetation across the terrain.

In this step, get ready to:
  • Verify the PCG plugin is enabled and create a PCG Graph asset.
  • Build a scatter pipeline using Surface Sampler and Static Mesh Spawner nodes.
  • Place a PCG Actor in the level and watch the forest generate automatically.
Verify the PCG plugin and create the graph asset

The PCG framework lives in a plugin that ships with UE 5.7. It is enabled by default, but a quick check avoids surprises later.

  • In the main menu bar, click Edit.
  • Click Plugins.
  • In the Plugins window search bar, type Procedural Content Generation.
  • Confirm that the Procedural Content Generation Framework plugin shows a checkmark (enabled).

What is PCG?

PCG lets you define rules in a visual graph instead of placing objects by hand. The engine evaluates the graph and spawns meshes automatically.

This is the same framework used in production open-world titles to fill landscapes with millions of assets while keeping performance in check.

  • Switch to the Content Browser panel at the bottom of the editor.
  • Right-click in an empty area of the Content Browser.
  • In the context menu, navigate to PCG and select PCG Graph.
  • Name the new asset PCG_HighlandForest.

Don't see PCG in the right-click menu?

Go back to Edit > Plugins and make sure the Procedural Content Generation Framework plugin is enabled. If you just enabled it, restart the editor when prompted.

How do I enable the PCG plugin?

Build the scatter pipeline in the PCG graph

A PCG graph connects nodes in a pipeline. You will wire a Surface Sampler (which generates points across the landscape) to a Static Mesh Spawner (which places a mesh at each point).

  • Double-click PCG_HighlandForest in the Content Browser to open the PCG Graph Editor.
  • Right-click on an empty area inside the graph.
  • In the context menu, search for Surface Sampler and select it to add the node.
  • Right-click on empty space again and search for Static Mesh Spawner.
  • Select it to add the node to the graph.
  • Drag a wire from the Out pin of the Surface Sampler to the In pin of the Static Mesh Spawner to connect them.

What do these two nodes do?

The Surface Sampler distributes points across the landscape surface. Each point inherits surface normals and UV data from the terrain underneath it.

The Static Mesh Spawner reads those points and places a static mesh at each one. You configure which meshes to spawn and how frequently each appears using weights.

  • Click on the Static Mesh Spawner node to select it.
  • In the Details panel on the right, locate the Mesh Entries section.
  • Click the + button three times to create three mesh entries.
  • For the first entry, click the mesh dropdown and browse to a tree mesh from your Starter Content. Set its Weight to 3.
  • For the second entry, select SM_Rock and set its Weight to 1.
  • For the third entry, select SM_Bush and set its Weight to 2.

How do weights control the mix?

Weights are normalized to percentages. With weights of 3, 1, and 2, the spawner produces roughly 50% trees, 17% rocks, and 33% bushes.

This creates a natural forest look where trees dominate and rocks are the rarest element.

Don't see SM_Rock or SM_Bush?

These meshes come from Starter Content. If you did not check Include Starter Content when creating the project, they will not appear. You can use any static meshes from your project instead. Pick a tall mesh for trees, a blocky mesh for rocks, and a small organic mesh for bushes.

Help me find static meshes for my PCG graph

Place the PCG Actor and generate the forest

The PCG graph defines the rules, but it needs an actor in the level to execute them. You will create a Blueprint actor with a PCG Component and point it at your graph.

  • In the Content Browser, right-click and select Blueprint Class.
  • Choose Actor as the parent class.
  • Name it BP_PCGForest.
  • Double-click BP_PCGForest to open the Blueprint Editor.
  • In the Components panel, click Add and search for PCG.
  • Select PCG Component to add it to the actor.
  • In the Details panel for the PCG Component, locate the Graph Instance section.
  • Set the Graph parameter to PCG_HighlandForest.
  • Click Compile in the toolbar.
  • Click Save.
  • Close the Blueprint Editor.
  • Drag BP_PCGForest from the Content Browser into the viewport.
  • With the actor selected, switch to the Scale tool by pressing R on your keyboard.
  • Scale the actor up on X and Y until it covers the full landscape area.

The PCG graph executes and the forest generates automatically across the terrain. You should see trees, rocks, and bushes scattered across the Highland landscape in the viewport.

Why does scaling the actor matter?

The Surface Sampler uses the actor's bounds to determine where it generates points. A small actor only scatters vegetation in a small patch. Scaling the actor to cover the full landscape ensures the forest fills the entire terrain.

Forest not appearing in the viewport?

Make sure you compiled and saved the Blueprint before placing it. Check that the Graph parameter on the PCG Component is set to PCG_HighlandForest.

If the actor is placed but nothing appears, select it in the viewport and look for a Generate button on the PCG Component in the Details panel. Click it to force regeneration. Why isn't my PCG forest generating?

Your Highland landscape now has a living forest of trees, rocks, and bushes. Next up, you will optimize this PCG output with Cull Distance Volumes so distant objects stop draining your frame rate.

Optimize PCG Output and Add Cull Distance Volumes

Your Highland landscape is alive with a procedurally generated forest. Trees, rocks, and bushes populate the terrain thanks to the PCG graph you built in the previous step.

Spawning thousands of meshes comes at a rendering cost. In this step, you will configure cull distances to stop drawing objects the player cannot meaningfully see, and profile the frame rate improvement.

In this step, get ready to:
  • Set per-mesh End Cull Distance values in the PCG graph to fade out distant objects.
  • Place a Cull Distance Volume to cull objects across the entire level based on their size.
  • Profile frame rates with console commands and compare performance with and without culling.
Set End Cull Distance values in the PCG graph

Every mesh your PCG graph spawns is rendered by the GPU, even if it is a tiny speck hundreds of meters away. End Cull Distance tells the engine to stop rendering an instance once it is beyond a set distance from the camera.

  • Switch back to your PCG_HighlandForest graph in the editor.
  • Click the Static Mesh Spawner node to select it.
  • In the Details panel, expand the Mesh Entries array.
  • Find your bush mesh entry (SM_Bush) and set its End Cull Distance to 5000.
  • Find your rock mesh entry (SM_Rock) and set its End Cull Distance to 8000.
  • Find your tree mesh entry and set its End Cull Distance to 15000.

Why different distances for each mesh?

Small objects like bushes become invisible to the player at closer distances than large objects like trees. By setting a lower cull distance for bushes (5000 units) and a higher one for trees (15000 units), you remove the objects that contribute the least visual value first.

This keeps the skyline looking natural while dramatically reducing the number of meshes the GPU has to render at any given moment.

  • Press Play and walk toward a dense area of the forest.
  • Look into the distance. Small bushes should disappear first as you move away from them, followed by rocks, and finally trees.
  • Press Escape to stop playing.

Objects not disappearing at distance?

Make sure you set the End Cull Distance on each individual Mesh Entry, not on the node itself. Each mesh type needs its own value.

Also check that the values are in Unreal units, not meters. A value of 5000 means 5000 Unreal units (50 meters), which is relatively close.

Help me debug why my PCG meshes aren't culling at distance

Place and configure a Cull Distance Volume

End Cull Distance works per-instance inside the PCG graph. A Cull Distance Volume takes a different approach. It applies size-based culling rules to every actor inside the volume, including non-PCG objects like placed props or decorations.

  • Open the Place Actors panel in the editor.
  • Search for Cull Distance Volume.
  • Drag it into the viewport to place it in the level.
  • With the volume selected, use the scale handles or the Details panel to scale it up so it encompasses the entire landscape.

What is a Cull Distance Volume?

A Cull Distance Volume uses an array of Size and Cull Distance pairs. The engine compares each actor's bounding sphere diameter to the Size values and picks the matching Cull Distance to decide when to stop rendering it.

This is ideal for large outdoor levels where small props like rocks and bushes should disappear long before large structures like mountains.

Now you need to configure the size-to-distance pairs that tell the volume what to cull.

  • With the Cull Distance Volume selected, open the Details panel and find the Cull Distances array.
  • Click the + button to add a new Cull Distance pair.
  • Set Size to 200 and Cull Distance to 5000. This culls small props at 5000 units.
  • Click + again to add a second pair.
  • Set Size to 500 and Cull Distance to 10000. This culls medium objects at 10000 units.
  • Click + again to add a third pair.
  • Set Size to 10000 and Cull Distance to 0. A Cull Distance of 0 means large objects like the landscape are never culled.

Why set Size 10000 with Cull Distance 0?

The engine picks the most aggressive (lowest non-zero) cull distance when pairs overlap. Without the 10000/0 pair, large actors like terrain chunks or major landmarks could get culled by accident.

Setting Cull Distance to 0 explicitly tells the engine to never cull actors with a bounding sphere that large.

  • Verify that your Cull Distances array has exactly three entries: 200/5000, 500/10000, and 10000/0.

Can't find the Cull Distances array?

Make sure you have the Cull Distance Volume itself selected in the viewport or Outliner, not another actor. The Cull Distances array only appears in the Details panel when the volume is selected.

If the volume is too small to see, try searching for CullDistanceVolume in the Outliner's search bar to locate and select it.

Help me find and configure my Cull Distance Volume

Profile performance with Stat commands

Configuring cull distances is only half the job. You need to measure the actual performance impact to confirm the optimization is working.

  • Press Play to enter Play mode.
  • Press the ~ (tilde/backtick) key to open the console.
  • Display the FPS counter by typing this command and pressing Enter:
Stat FPS
  • Display the frame time breakdown by typing this command and pressing Enter:
Stat Unit

What do these commands show?

Stat FPS displays the frames-per-second counter in the top corner of the viewport. Higher is better.

Stat Unit breaks down each frame into Frame, Game, Draw, and GPU times in milliseconds. If the GPU time is close to the Frame time, rendering is the bottleneck. Culling helps by reducing the number of objects the GPU has to process.

  • Walk through the forest and note the FPS and GPU time values displayed on screen.
  • Look into the distance and confirm that small bushes and rocks disappear before trees do.
  • Press Escape to stop playing.

Now compare performance with the Cull Distance Volume disabled to see the difference it makes.

  • Select the Cull Distance Volume in the Outliner.
  • In the Details panel, uncheck the Enabled checkbox to temporarily disable the volume.
  • Press Play and walk through the same area of the forest.
  • Open the console with ~ and run Stat FPS again to compare the FPS without the volume active.
  • Press Escape to stop playing.
  • Re-select the Cull Distance Volume in the Outliner and check the Enabled checkbox to turn it back on.

You should see a noticeable FPS improvement with the Cull Distance Volume enabled, especially when looking across large stretches of the landscape.

Use Game View for accurate culling

Press G while in the viewport (outside Play mode) to toggle Game View. This hides editor icons and shows culling effects from Cull Distance Volumes in real time, so you can preview culling behavior without entering Play mode.

No difference in FPS?

If your machine has a powerful GPU, the FPS difference may be small on a level this size. The optimization has a bigger impact on larger, denser levels. Focus on the GPU time in Stat Unit instead, as even a few milliseconds saved per frame adds up.

Also confirm that the Cull Distance Volume is scaled large enough to cover the area where you are walking. If the volume does not encompass the player's position, its culling rules do not apply.

Help me understand why my Cull Distance Volume isn't improving performance

Secret mission

Add Slope-Based Filtering to the PCG Graph

Right now your forest scatters vegetation randomly across the landscape. Trees appear on cliff faces, rocks sit on flat hilltops, and the result looks artificial. In the real world, vegetation follows terrain slope. Trees grow on flat ground where roots can hold, rocks dominate steep slopes where soil erodes, and bushes fill the transitions. Apply slope-based filtering to your PCG graph so the Highland forest looks like nature placed it.

Clean Up Your Resources

Clean Up Your Resources

Decide whether to keep your resources, pause them to come back later, or delete them entirely. This project runs entirely on your local machine, so there are no ongoing costs.

Resources you created:

  • Your Unreal Engine project folder (contains the Open World level, the PCG_HighlandForest graph, PCG Actor, Cull Distance Volume, and all Starter Content assets).

Keep everything running

No action needed. Choose this if you plan to keep building on your Highland landscape or want to apply these techniques to your team's main project level.

  • Your project folder stays on disk with no ongoing costs.
  • You can reopen it anytime from the Epic Games Launcher or the Unreal Project Browser.

Pause - I'll come back to this later

Close Unreal Engine to free up system memory and GPU resources. Your project files stay on disk so you can pick up where you left off.

  • Save your level by pressing Ctrl+S, then close Unreal Engine.
  • Your project folder remains on your machine. Reopen it from the Epic Games Launcher or Unreal Project Browser when you are ready to continue.

Delete - I don't want to use this again

Remove all project files from your machine. This permanently deletes your Highland landscape, PCG graph, and all associated assets.

  • Close Unreal Engine if it is still open.
  • Locate your project folder. If you are unsure where you saved it, open the Unreal Project Browser and check the path shown under your project name.
  • Delete the project folder by running this command in your terminal:

macOS

rm -rf [[PROJECT_PATH="path to your Unreal Engine project folder"]]

Windows

Remove-Item -Recurse -Force [[PROJECT_PATH="path to your Unreal Engine project folder"]]
  • Confirm the folder is gone by checking the parent directory in your file browser. You should no longer see the project folder listed.

That's a Wrap!

That's a Wrap!

Nice work. You just built a streaming, procedurally populated Highland landscape in Unreal Engine 5.7, complete with terrain-aware vegetation and real-time performance optimization.

You've learned how to:

  • Set up a World Partition-enabled Open World level with configured grid cell streaming, tuned cell size and loading range, and verified cells loading and unloading at runtime using debug visualization commands.
  • Built a PCG graph from scratch using Surface Sampler and Static Mesh Spawner nodes to procedurally scatter trees, rocks, and bushes across a sculpted Highland landscape.
  • Applied performance optimization techniques including Cull Distance Volumes, per-mesh cull distances, and profiling with Stat console commands to keep frame rates stable.
  • Secret Mission: Added slope-based PCG filtering so trees grow on flat ground, rocks appear on steep slopes, and bushes fill the transitions for realistic, terrain-aware vegetation distribution.

Ready to quiz yourself?