PolyTerrain modifiers

Modifiers are non-destructive components evaluated in Priority Layer + Sub-Priority order. Shared fields: m_enabled, m_priorityLayer, m_subPriority, m_targetPartition (see Components).

Catalog

ModifierWritesTypical use
SculptGeometryBrush displace: Push / Flatten / Smooth / Pinch / Inflate / Erosion
Weight PaintWeightsReplace / Add / Subtract; optional splat normalize and slope/height Fill
BooleanTopologyAdd / Subtract / Trim / Intersect (Manifold CSG)
SplineGeometryFlat / V-Ditch / Crown along a spline
NoiseGeometry or weightFbmPerlin / Simplex / Cellular, or embedded GradientSignal grid
TextureGeometry or weightProject grayscale image (TopDownZ / AxisX / AxisY)
RemeshTopologyRetarget edge length in a region
Mesh ProjectionGeometryProject mesh instances onto the surface
PatchGeometry + weightDecal mesh instances
Subsection HintMetadataAABB hints for subsection splits
Heightfield BlendGeometryBlend partition edges toward heightfield
PCG WriteGeometryApply PCG Query→Write point pairs

Sculpt

ParameterDefaultNotes
Brush modePushOne mode per modifier; stack multiple Sculpts to mix
Displacement modeNormalVertical / Normal / CameraFacing (overhangs; stamp stores view direction)
Brush radius / strength5 m / 0.5World-space radius; strength scaled by tablet pressure when enabled
Erosion talus angle35°Erosion mode only
Mask channelemptyOptional weight channel mask
StrokesPartition-space stamps

Weight Paint

ParameterDefaultNotes
Active channelMust match MPD channel name
Blend modeAddReplace / Add / Subtract (shared with Fill)
Normalize splatoffRescale other channels so splat sum stays ≤ 1
Paint / smooth strokesSmooth relaxes neighborhood after paint
FilloffProcedural fill by slope (° vs +Z) and partition-space height before stamps

Boolean

Operands come from Mesh or Shape entities (editor extracts LOD0 / tessellates shapes into partition space).

ParameterNotes
OperationAdd / Subtract / Trim (soft Subtract) / Intersect
Soft blend distanceTrim Laplacian band (m); 0 ≡ Subtract
Operand entitiesEditor list; auto re-extract on transform / model change

Pitfalls:

  • Base and operands must be watertight; failed operands are skipped.
  • Topology replace clears weight channels—put WeightPaint after Boolean.
  • Influence bounds are unbounded (always participates in dirty rebuilds).

Spline

ParameterNotes
Spline entitySplineComponent; sampled to partition-space polyline
ProfileFlat (roadbed) / V-Ditch / Crown
Width / depth / falloffMeters; falloff is outer quadratic blend band

Noise

ParameterNotes
TargetDisplacement (+Z) or WeightChannel
Noise typeFbmPerlin (default) / Simplex / Cellular
Frequency / amplitude / octaves / lacunarity / gain / seedSeed enters ContentHash
Region boundsOptional partition-space AABB
Gradient gridOptional: Sample From Gradient embeds a grid that overrides procedural noise

Sampling is in partition space (continuous across sections).

Texture

ParameterNotes
Source imageEditor decodes StreamingImage (or Import CSV / GeoTIFF) into embedded pixels
Projection axisTopDownZ / AxisX / AxisY
Projection offset / sizePartition-space region
Intensity scale / offsetRemap sampled [0,1]
TargetDisplacement or WeightChannel

Remesh

ParameterNotes
Target edge lengthSplit long edges / weld short interiors
Region boundsOptional crop
Preserve featuresKeep sharp creases when welding

Border vertices are never welded (section seams stay locked).

Mesh Projection

ParameterNotes
Source mesh entityLOD0 extracted to local space; instances in partition space
Projection directionDown / Up / ±X / ±Y
Blend distanceInner XY blend band (m)
InstancesManual or PCG SpawnMeshProjectionInstances

Patch

ParameterNotes
Patch meshEmbedded local-space mesh
InstancesPosition / rotation / uniform scale (viewport Move/Rotate/Scale)
Blend weight channelNew verts get 1 in that channel

Appends triangles (not CSG). PCG can spawn instances via SpawnPatchInstances.

Subsection Hint

AABB list in partition space; consumed when the Transformer Subsection stage has Respect subsection hints enabled. Viewport box manipulators edit the selected hint.

Heightfield Blend

Embeds a top-down height grid sampled from heightfield terrain; blends partition Z toward that grid in a boundary band. Auto-resamples when terrain or partition transform changes. See Integrations.

PCG Write

Stores source→destination point pairs from PolyPartitionPcgRequestBus Write. Vertices matching quantized source positions move to destinations. Prefer pairing with a Query that used the same Build To layer. See Optional features.

Layer-order checklist

  1. Procedural Base (Texture / Noise / Heightfield Blend) at the bottom.
  2. Topology (Boolean / Remesh) before final WeightPaint.
  3. Detail Sculpt / Spline / Patch near the top of geometry layers.
  4. WeightPaint last among weight writers for a given pass.
  5. Keep layer names identical to the MPD list.

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.