Limitations and troubleshooting

What the current release does not do, and how to recover when something looks wrong.

On this page 15 sections

Open Painter's feature target is Substance Painter's documented workflow, and full parity is not achieved. The add-on repository's PARITY.md records working subsets, missing workflows and acceptance criteria page by page. This page lists the limits you are most likely to run into, and what to do about common problems.

Current limitations

AreaLimit
PlatformsTested on Blender 5.2.1 LTS, macOS Apple Silicon. The manifest requires Blender 5.2+; other platforms and newer versions are untested.
UVsOrdinary sets use the 0–1 tile. The September 25 development build adds UDIM sets for tiles 1001–2000, with independent stacks per tile. Existing painted sets are not converted automatically. See UDIM setup below.
PaintingPaint Material supports continuous multi-channel strokes. Blender's native brush edits one channel at a time. A native 2D composite is an explicit snapshot; complex materials can take time to settle. Tablet pressure/tilt have synthetic-input coverage only.
Preview costInitial shader-graph construction and Blender's material redraw have a cost that grows with the material. Some procedural fields and spatial filters require isolated raster inputs. No universal viewport frame-time target is established.
CurvatureSharp crease lines and smooth convex target-mesh features; Mean Curvature is the separate signed map. High-poly-only normal detail is not transferred into target curvature. Dust reads baked world-normal Z; moving or deforming geometry needs a rebake (or a live field).
TriplanarUses the base mesh's world positions and interpolated vertex normals through the render UV layer. Apply topology-changing modifiers first; use Refresh after moving geometry.
BakingCycles maps bake synchronously on CPU; utility maps use geometry analysis. Automatic cages use a manual distance; custom cages support one low-poly mesh with matching topology.
Slots and datablocksShared mesh datablocks need an explicit single-user copy. Inserting or reordering material slots after assignment can invalidate references.
InterfaceNative Blender panels and Asset Shelf. Click-based asset activation, drag reordering, single selection in the layer list.
AnchorsReference within one texture set; ignore projection and UV transforms; folder channels cannot be anchored directly. A missing anchor evaluates as neutral and is reported, not repaired.
Smart material filesImport is limited to 512 MiB and 256 layers. External paint textures are bundled as EXR; generator maps must be baked in the destination set. Current files include relevant stroke records and brush alphas. Custom Graph masks must be baked and live scene fields frozen before portable export. Named mesh/decal references need destination-scene matches.
Environmental effectsMaterial Aging simulates material-specific processes from exposure history to author appearance. Its outputs and live scene fields are artistic estimates, not measured corrosion or fluid-flow predictions.
Material DirectorAutomatically installs a verified private runtime on first sign-in and requires an eligible account. Create, Refine and Plan require current geometry maps and view/map sharing. No UV, topology, slot, bake or export changes; candidate review does not guarantee quality. Windows/Linux untested.

UDIM authoring · development build

The September 25, 2026 development build adds UDIM authoring. This is new development work, separate from the published release download. Use a build with Create UDIM Sets to follow this workflow.

  1. Select unwrapped meshes in Object Mode. Use local, single-user mesh data with no existing Open Painter texture-set assignments. Multiple selected meshes must use the same render UV map name.
  2. Keep each UV face inside one tile. Border vertices, gaps and additional rows are supported within tiles 1001–2000.
  3. Choose Texture Sets › Create UDIM Sets, enter an export name and choose the resolution per tile. Each occupied tile gets its own set, layers, masks and bake maps.
  4. Paint and bake using the normal controls. Enable Paint Across Sets to carry native or multi-channel strokes over tile boundaries. Export all sets, or the selected objects’ sets, to produce numbered files such as Robot_BaseColor.1002.png.

Source UV coordinates remain intact. Native painting temporarily uses a derived UV map; Finish restores the original active map, including after save/reopen. Each tile has an independent layer stack. Existing painted sets are not automatically split, and external UDIM image sequences must be assigned to their corresponding tile layers. Check your destination application’s UDIM support before delivery.

Troubleshooting

A smart material or smart mask refuses to apply

It needs mesh maps that are not baked yet. The message names them; bake them in Bake Mesh Maps and apply again. Missing or outdated edge maps can queue an edge rebake; other missing requirements need an explicit bake. See the required maps per material.

Edge wear reads as stale, or does not follow a new bevel

The edge maps were baked before the mesh or the bake settings changed. Click Rebake Edge Map in the Edge Wear properties, or switch the mask's Edges From to Live Geometry so the wear follows mesh edits without a bake. Increasing a generator's amount never changes which edges qualify — Minimum Edge Angle and Edge Width (px) do, and they are bake settings.

Textures changed on disk but the viewport did not

Click Refresh. Idle sessions do not repeatedly hash the canvas, so an external edit needs an explicit refresh. The same applies after moving geometry that triplanar projection reads.

Painting stops when I click another layer

Selecting a fill, folder or non-painted mask ends the paint session by design; Finish does the same. Select a paint layer or painted mask and click Paint again.

Validate Project reports broken assignments

Material slots were inserted or reordered after the set was assigned, or a mesh datablock is shared. Make the mesh single-user if needed, then reassign the affected slots from Texture Set Settings, which also exposes renaming, assignment repair, validation and resolution.

Applying the Height map through a bump node doubles the relief

The exported Normal already includes Height. Use Height for displacement only, or drop it when you use the combined normal. See Export.

Codex will not connect

Enable Blender's Allow Online Access and use Assistant › Sign in with ChatGPT. First use downloads a verified private runtime; inspect setup progress and any download error. If using the Advanced runtime override, the adapter currently accepts 0.154.x. Reconnect after changing runtime or account storage. See Assistant setup.

The Assistant asks for mesh maps

Create, Refine and Plan require current AO, Curvature, Normal, World Normal, Position and Thickness for every set in scope, plus view and map sharing. Bake missing or stale maps, then retry. Explain can discuss the material without that preflight.

A heavy layer looks out of date

Check cache mode and preview status. Frozen caches need Refresh Cache; Cached layers update after edits settle. Bypassed layers return with Restore Selected. Preview controls do not remove layers from the exported result.

Export reports existing files or a recovery error

Review Output Preview and publication rules. Choose another destination or explicitly enable Replace Existing Files. If recovery cannot read its journal, preserve it and the existing outputs for diagnosis rather than deleting files to force a retry.

Reclaiming memory after removing texture sets

Removing a set restores its slots but keeps images, materials and meshes. Use Blender's orphan cleanup when you want to reclaim unused managed datablocks.

Reporting a problem

Open an issue on GitHub with your Blender version, platform, the Open Painter version from the extension list, and a minimal .blend when you can share one. Managed images are packed on save, so a single file usually reproduces the problem. For Connect, Materials+ or billing questions, write to support@openpainter.dev.