Latest news
Tips & GuidesUnreal EngineMari

Unreal Engine World Partition guide: Split large architectural scenes into cells

Unreal Engine’s World Partition system divides large worlds into cells within a single persistent level and loads them as needed. This guide explains the essential setup steps for streaming and distant geometry in architectural environment scenes.

Detailed buildings and a simplified distant environment in a large architectural campus sceneAI image
Representative image, generated with AI.Image: 3dsınıfı / FCA AI

In brief

  1. World Partition keeps large levels in a single persistent file and divides the working area into grid cells.
  2. At runtime, cells are loaded and unloaded based on the locations of streaming sources and grid settings.
  3. HLOD can represent distant objects in unloaded cells using proxy geometry.
  4. Before generating HLODs, the relevant actors must be assigned to an HLOD layer and set to Static mobility.

Unreal Engine’s official documentation describes World Partition as a system that divides large levels into cells within a single persistent Level, then loads and unloads those cells at runtime. This guide explains how to set up the system for architectural environments, expansive landscapes, and large-scale visualization scenes, and how to handle distant geometry with HLOD. Since the documentation does not specify a particular Unreal Engine version, menu and option names are reproduced as they appear in the source.

1. Create a World Partition project or level

When starting a new project, World Partition is enabled by default in some templates in the Games category. However, Enable Streaming is disabled by default in the Blank, First Person, Third Person, Top Down, and Vehicle Advanced templates. So if the scene needs not only to be partitioned but also to stream cells, check the Enable Streaming option in World Settings.

To set up a large open area as a starting point, go to File › New Level, select the Open World map type, and click Create. In the Open World type, World Partition, One File Per Actor, Data Layers, and Hierarchical Levels of Detail are enabled by default. The sample map in the documentation includes a 2 km x 2 km Landscape with outdoor lighting.

To convert an existing level, use Tools > Convert Level. Alternatively, you can run the command-line tool. The example command in the official documentation is:

Prompt
UnrealEditor.exe QAGame -run=WorldPartitionConvertCommandlet Playground.umap -AllowCommandletRendering

In the conversion command, -ReportOnly can be used to report the operations to be performed without carrying out the conversion. -ConversionSuffix helps preserve the source level by adding _WP to the converted map for testing. Before using -DeleteSourceLevels, which deletes the source levels, consider which files need to be preserved and how the team workflow is set up.

2. Configure cell streaming for the scene

World Partition divides the level into grid cells that can be used at runtime. Whether cells are loaded or unloaded depends on the locations of streaming sources and the Runtime Grid settings. The Player Controller can be used as a streaming source by default; you can also add a World Partition Streaming Source component to the scene.

For example, to load the cells around a teleport destination before the player arrives, you can temporarily activate a streaming source at that location. The component includes options such as Target Grid, Priority, and Target State. Target State determines whether intersecting cells transition to the Loaded or Activated state. The Is Streaming Completed function in Blueprint reports whether streaming has finished for the cells covered by the component.

Runtime Grid settings are in the World Partition Setup section of the World Settings panel. The documentation uses a 2D Runtime Hash grid by default and warns that using multiple grids can negatively affect performance. The measurements below are example values from the documentation; they should not be treated as fixed recommendations for every scene.

SettingDocumentation exampleEffect
Cell Size256 m x 256 m x 256 mDetermines the size of the cells.
Loading Range768 m radiusDetermines the distance from the streaming source at which cells are loaded.

3. Create an HLOD layer for the distant environment

Cell streaming can make objects in areas that are not currently loaded disappear from view. The World Partition HLOD system represents these areas with proxy meshes; according to the documentation, this approach can help reduce draw calls per frame and improve performance.

To create a new HLOD layer, go to Content Drawer > + Add > Miscellaneous › HLOD Layer. Choose a layer type based on the content in the scene:

  1. Instancing represents source Static Meshes through Instanced Static Mesh components with lower-level LOD settings. The documentation lists imposters for trees and plants as suitable examples for this type.

  2. Merged Mesh combines Static Mesh actors into a single proxy mesh.

  3. Simplified Mesh combines actors into a single proxy mesh and simplifies the geometry.

Separate settings are available for Merged Mesh and Simplified Mesh. Depending on the layer type, you can configure lightmap UVs, material simplification, mesh merging, and proxy generation options. HLODMaterial selects the base material for material baking in merged or simplified layers; the documentation notes that the default material is sufficient for most uses.

4. Generate HLODs and check the result

To generate HLODs, assign actors to an HLOD layer, set their Mobility to Static, and enable HLOD generation. You can assign a layer through the HLOD property in an actor’s Details panel, the Default HLOD Layer property of a Data Layer, or World Settings. Then use Build > Build HLODs or run the WorldPartitionHLODsBuilder commandlet.

Impact on architectural visualization workflows

World Partition makes it possible to manage only the parts of a large site, campus, or environment model that are needed, rather than loading everything at once. In team workflows, storing actors in separate files with One File Per Actor can reduce the need to check out the Level file while others edit actors. HLOD can also help keep distant landscape and building elements visible.

However, cell size and loading range should be tested against project requirements; the example values in the documentation should not be applied directly to every scene. Processing large amounts of geometry with a small sampling interval in Simplified Mesh settings can have a high memory cost. Disabling distance fields on merged meshes shown at a distance can save memory. The documentation does not specify licensing, pricing, or particular hardware requirements; before implementation, also check the Unreal Engine version in use and the project settings used by the team.

Common mistakes

  • Assuming cell streaming is enabled: Enable Streaming is off in some templates, so verify it in World Settings.

  • Assigning the same HLOD type to every actor: Instancing may be suitable for trees, while other layer types can be considered for merged structures.

  • Forgetting to set Mobility to Static before generating HLODs: According to the documentation, this is one of the requirements for generation.

  • Treating the example grid measurements as a fixed recipe: Cell size and loading range should be tested against the scope of the scene.

Sources

2 sources
D
dev.epicgames.comdev.epicgames.com/documentation/en-us/unreal-engine/world-partition-in-unreal-engine
Summary
D
dev.epicgames.comdev.epicgames.com/documentation/en-us/unreal-engine/world-partition---hierarchical-level-of-detail-in-unreal-engine
Summary

Source texts are not republished; short quotes are marked, everything else is our own summary and commentary.

3dsınıfı’s take
3dEditor’s assessment

For architecture and visualization studios in Turkey, World Partition’s main benefit is that it reduces the need to load large environment scenes all at once and can make it easier for teams to work on the same Level. Cell streaming and HLOD can be considered together for campuses, expansive landscapes, and outdoor presentations.

However, directly applying the example cell and loading values to a project may not be the right starting point; they should be tested against the scene. Keep in mind that a small sampling interval in Simplified Mesh can have a high memory cost. The documentation does not provide licensing, pricing, or hardware requirements, so studios should also verify compatibility with the version they use and performance on their current hardware.

Frequently asked questions

What does Unreal Engine World Partition do?

It divides a large level into grid cells within a single persistent Level. Cells are loaded and unloaded at runtime based on the locations of streaming sources.

What does HLOD provide in Unreal Engine?

HLOD can represent distant actors in unloaded World Partition cells with proxy meshes. According to the documentation, it can help reduce draw calls and improve performance.

What is required before generating HLODs?

Actors must be assigned to an HLOD layer, their Mobility must be set to Static, and HLOD generation must be enabled.

Comments and the forum are in Turkish.Join the discussion
+

Related news