Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/armory3d/armorpaint/llms.txt

Use this file to discover all available pages before exploring further.

ArmorPaint uses a non-destructive layer stack similar to professional 2D painting applications. Every stroke, fill, and effect lives on its own layer, and layers are composited together in real time using GPU shaders. You can reorder, hide, duplicate, merge, and delete layers at any time without permanently altering your base mesh. The Layers panel is available in the sidebar and can be expanded to a full 2D view via the 2D View button.

Layer Types

The standard layer type (LAYER_SLOT_TYPE_LAYER). Stores painted texture data across up to three internal textures:
  • texpaint — Base color and opacity.
  • texpaint_nor — Normal map data.
  • texpaint_pack — Packed channel data: Occlusion (R), Roughness (G), Metallic (B).
Paint layers support all 11 paintable channels (base color, opacity, occlusion, roughness, metallic, normal, normal blend, height, height blend, emission, and subsurface) that can be toggled on or off per layer.

Layer Properties

Each layer slot (slot_layer_t) exposes the following configurable properties:
PropertyDescription
visibleToggle the layer on/off. A hidden layer is excluded from compositing. Click the eye icon next to the layer.
mask_opacityOverall opacity of the layer (0.0–1.0, displayed as 0–100%). For mask layers this controls how strongly the mask is applied to its parent.
Each channel can be individually enabled or disabled per layer via the Channels section in the layer context menu (right-click on the layer):
FieldChannel
paint_baseBase Color
paint_opacOpacity
paint_occOcclusion
paint_roughRoughness
paint_metMetallic
paint_norNormal
paint_nor_blendNormal Blend
paint_heightHeight
paint_height_blendHeight Blend
paint_emisEmission
paint_subsSubsurface
Channels beyond Base Color and Opacity are only active in the PBR workflow.
PropertyDescription
uv_typeUV projection mode: UV Map (0), Triplanar (1), or Project (2).
uv_mapThe specific UV channel index to use (uv0, uv1, etc.) when uv_type is UV Map.
scaleUV tiling scale for fill layers (0.0–5.0). Defaults to 1.0.
angleUV rotation angle for fill layers (0–360°). Defaults to 0.0.
The object_mask property restricts a layer’s paint contribution to a specific mesh object in the scene. Set it via the Object dropdown on the layer row. Choose Shared (index 0) to paint across all objects, or select a named object to isolate painting to that mesh.

Blending Modes

All 18 blending modes from blend_type_t are supported. Select the blending mode from the dropdown on the layer row or in the layer context menu:

Mix

Default alpha-blend compositing.

Darken

Keeps the darker of the two colors.

Multiply

Multiplies colors, always darkening.

Burn

Darkens by increasing contrast.

Lighten

Keeps the lighter of the two colors.

Screen

Inverted multiply; always lightens.

Dodge

Brightens by decreasing contrast.

Add

Adds color values together.

Overlay

Combines Multiply and Screen based on base brightness.

Soft Light

Softer version of Overlay.

Linear Light

Linear Dodge or Burn based on blend color.

Difference

Absolute difference between colors.

Subtract

Subtracts blend color from base.

Divide

Divides base color by blend color.

Hue

Applies hue from blend, keeps base saturation/value.

Saturation

Applies saturation from blend, keeps base hue/value.

Color

Applies hue and saturation from blend, keeps base value.

Value

Applies value (brightness) from blend, keeps base hue/saturation.

Layer Context Menu

Right-click any layer to access its context menu. Key actions include:
1

Export

Export the layer’s texture to a PNG file on disk, or export the full texture set via the standard export dialog.
2

To Fill Layer / To Paint Layer

Convert between a procedural fill layer and a rasterized paint layer. Converting to a fill layer uses the current active material. Converting to a paint layer bakes the fill result into pixel data.
3

Delete / Clear / Duplicate

Delete removes the layer entirely. Clear resets all pixels to transparent (or white for masks). Duplicate (Ctrl+D) creates a copy of the layer above the original.
4

Merge Down

Flattens the selected layer onto the layer directly below it. Only available when a compatible layer exists below.
5

Apply / Invert (Masks only)

Apply bakes the mask into its parent layer and removes the mask slot. Invert flips all mask pixel values.

Undo and Redo

ActionShortcut
UndoCtrl+Z (edit_undo)
RedoCtrl+Shift+Z (edit_redo)
The number of undo steps is configurable in Preferences → Usage via undo_steps. At very high texture resolutions (≥16384 px), the undo step count is automatically reduced to 1 to conserve GPU memory.

Build docs developers (and LLMs) love