PolyTerrain optional features

These features are opt-in on top of /O3DE/PolyTerrain/Enabled. If a gate is off, related buses typically no-op (return false / do nothing) so content stays safe by default.

Registry gates

FeatureKey (under /O3DE/PolyTerrain/)Default
Runtime VTVtEnabledfalse
GPU sculpt previewGpuPreviewEnabledfalse
Runtime PCG graph executePcgRuntimeExecutionEnabledfalse
Runtime weight rewriteRuntimeWeightRewriteEnabledfalse
Dominant-channel re-cook after rewriteCollisionDominantReweightEnabledfalse
Convex hull material followCollisionConvexReweightEnabledfalse

Always restart or ensure system components re-read Registry after changing gates.

Virtual texture (VT)

  1. Set VtEnabled = true.
  2. Create a .vt asset (atlas size, tiles per side, optional page table, trail stamp budget, Normal / Roughness / weight planes).
  3. Place Poly Partition VT Volume + Box Shape covering the partition.
  4. Sample in materials via Material Canvas Sample Vt Base Color / Normal / Roughness / Weight, or the shared VtSampling.azsli helpers.
  5. Optional: VT Trail Emitter on moving entities, or call PolyPartitionVtRequestBus::SubmitTrailStamp.

Notes:

  • Multiple volumes (up to 4) pack into a shared atlas.
  • Trail stamps can write color and optional Normal / Roughness / weight planes depending on .vt flags.
  • Without a covering volume or with VtEnabled false, sampling falls back / stamps no-op.

PCG graphs

Editor graph pane: Poly Terrain PCG Graph Editor (Outliner partition row → Open PCG Graph Editor). Assets: .polypcggraph (level-agnostic; target partition injected at run).

NodeRole
QueryPoint cloud from surface (Build To layer is non-inclusive of the write layer)
OffsetAlongNormal / NoiseDisplaceTransform points
SlopeFilter / WeightFilterFilter
Write→ PCG Write modifier
SpawnPatch / SpawnMeshProjection→ Patch / Mesh Projection instances

Run Graph (Ctrl+R) validates, can auto-add missing empty-name output modifiers, and executes in one undo batch.

Python / C++: PolyPartitionPcgRequestBusQuerySurface, WritePositions, SpawnPatchInstances, SpawnMeshProjectionInstances, ExecuteGraph / ExecuteGraphAsset.

Example script: Gems/PolyTerrain/Editor/Scripts/polypartition_batch_apply_modifier.py.

With PcgRuntimeExecutionEnabled, Write / Spawn also land on runtime modifier components in PIE / game (session state; use Save/LoadRuntimePcgStateToFile for snapshots). Components must already exist on the prefab—runtime does not auto-create them.

Also see the large-world PCG preview page.

Runtime weight rewrite and multiplayer

  1. Set RuntimeWeightRewriteEnabled = true.
  2. Call PolyPartitionWeightRewriteRequestBus::SubmitWeightStamp (disk in section-local space: channel, center, radius, hardness, target weight, blend mode).
  3. Both ends recompose from the same stamp log (deterministic). SurfaceData and VT weight planes follow effective weights.

Optional physics follow-up:

KeyCostUse
(always with rewrite)LowPer-chunk blended materials update in place
CollisionConvexReweightEnabledLowPer-hull SetMaterial
CollisionDominantReweightEnabledHighRe-cook triangle mesh when dominant winner flips

Multiplayer: PolyTerrain.Multiplayer submodule (optional build) replicates stamps, not section entities. Clients apply the same log; late join uses baseline packets. Overlay Save/Load / delta APIs exist for project-owned persistence (Gem does not bind SaveData).

GPU Preview

GpuPreviewEnabled accelerates dirty brush Preview for eligible Sculpt stacks (including masked / Smooth / Erosion and CPU-prefix + GPU-sculpt-segment mixes). Explicit RebuildPreview, PCG QuerySurface, and AP bake stay on CPU—ContentHash authority never moves to GPU. Float differences on the GPU path are preview-only.

ImGui / diagnostics can show last eval path (CPU vs GPU) when Debug overlay is on.


Copyright © 2026 DawnEngine. All rights reserved.

DawnEngine is a commercial 3D engine distributed under the DawnEngine end-user license agreement. Engine binaries and source are proprietary and are not covered by the licenses below.

Documentation only: the prose and templates on this site are a derivative work of Open 3D Engine (O3DE) documentation by the O3DE Contributors, used under CC BY 4.0 (documentation content), Apache 2.0 (site code), and the MIT license (inline code samples).

The open-source 3D engine that DawnEngine is built on top of is Open 3D Engine . DawnEngine is not affiliated with, endorsed by, or sponsored by The Linux Foundation or the O3DE project. “O3DE” and “Open 3D Engine” are trademarks of The Linux Foundation.