PolyTerrain getting started
Get a mesh terrain partition from zero to Play-ready as quickly as possible: enable the Gem and Registry gates, create an MPD, add a Poly Partition, iterate in Preview, then bake Compiled Sections.
Prerequisites
PolyTerrainis enabled in the project (Project Manager orproject.json). Dependencies includeLmbrCentral,GradientSignal,SurfaceData, Atom RPI features, andWorldStreaming.- AssetProcessor is running when you bake (
.polypartition→.polypartitionsection/.polypartitionweights). - For large-world anchors, prefer pairing with double-precision rendering.
Minimal loop (five steps)
1 Enable Gem + Registry
→ 2 Create MPD (.polypartitiondefinition)
→ 3 Create Poly Partition entity
→ 4 Sculpt / Paint in Preview
→ 5 Build Compiled Sections
1. Enable the Gem and Registry
Enable PolyTerrain in the project, then turn the feature on in Settings Registry (project or gem override):
{
"O3DE": {
"PolyTerrain": {
"Enabled": true,
"EditorModeEnabled": true
}
}
}
Restart the editor.
| Key | Required for |
|---|---|
Enabled | System components and bridges register |
EditorModeEnabled | Tools → Poly Terrain Mode six-tab UI |
Without Enabled, heightfield terrain and existing levels behave as before. Without EditorModeEnabled, Outliner / Inspector workflows still work when Enabled is on, but the six-tab mode stays hidden.
Defaults live in Gems/PolyTerrain/Registry/polyterrain.setreg. Full key table:
Reference.
2. Create an MPD
- Content Browser → Create → Data Asset → Poly Partition Definition (
.polypartitiondefinition). Name it e.g.MPD_LevelName. - Declare Priority Layers (e.g. Base → Sculpt → Boolean → WeightPaint) and Weight Channels (e.g. Grass, Rock).
- Optionally set Material hints, Build variants, and Preview complexity caps (details in Materials and bake).
The Create Tab also offers an MPD wizard that writes a default definition (layers, channels, StaticMesh + Skirt + Collision pipeline) and binds it to a new partition.
3. Create a Poly Partition
- Tools → Poly Terrain Mode → Create Tab.
- Create a Poly Partition entity (or use the MPD wizard).
- Assign the MPD on Poly Partition. Defaults can auto-generate a plane:
| Field | Typical default | Purpose |
|---|---|---|
| Auto generate plane | on | Implicit Base Sections from a grid |
| Section size | 64 m | Edge length of each section |
| Vertices per edge | 65 | Grid density (64×64 quads) |
Section anchors are world AZ::Vector3d. Keep a single section span roughly ≤ 2 km; split larger areas. See
Core concepts.
4. Sculpt, paint, and iterate
- Modifiers Tab (or Outliner palette): add Sculpt and Weight Paint.
- Sculpt / Paint Tabs: brush geometry and weight channels on the Preview mesh.
- Outliner Build To truncates the preview stack while iterating (faster feedback).
- Use Rebuild Preview when you need a full synchronous refresh.
Strokes are stored in partition space and undo through the standard editor undo stack. Modifier catalog: Modifiers. Tool details: Authoring.
5. Build Compiled Sections
- Build Compiled Sections from the Edit Tab, Outliner, or Inspector (incremental when
ContentHashis unchanged). - AssetProcessor produces
.polypartitionsectionand.polypartitionweights. PolyPartitionPrefabProcessorexpands runtime section entities (and can inject World Streaming membership). Order is before WS processors when WS is enabled.
Then enter PIE / game and confirm render + collision. Optional: add Poly Partition Collision and Poly Partition Surface Data on runtime section entities (often injected by the PrefabProcessor when the Transformer Pipeline includes Collision).
Sample level
Open AutomatedTesting/Levels/PolyTerrain/PolyTerrainSample for a small plane partition with Sculpt / WeightPaint already wired. The AutomatedTesting project Registry turns Enabled / EditorModeEnabled on for that suite.
Verify
| Check | How |
|---|---|
| Mode menu present | Tools → Poly Terrain Mode after restart with both Registry keys |
| Preview updates | Stroke in Sculpt; mesh moves in the viewport |
| Bake products | Content Browser / AP cache shows .polypartitionsection |
| Play | PIE shows terrain; walk on collision if Collision stage is in the pipeline |
If something fails, start with Debugging. Next: Authoring for the six tabs, or Materials and bake for MPD and Transformer details.