Merge Materials
The Merge Materials tab collapses a blockout's worth of flat materials into a single output. Both modes are non-destructive: your original material assignment is snapshotted first, and your existing UVs are never modified.
Set Target Collection to the collection holding your meshes. Nested collections are included, and a mesh shared by linked duplicates is processed once rather than once per object.
Texture Atlas
Collects every flat Principled base color in the collection, packs them into a square power-of-two texture, and points a dedicated SwatchUV layer at the matching cell. The generated SwatchMaterial samples that layer through an explicit UV Map node.
| Setting | Default | What it does |
|---|---|---|
| Swatch Preview | — | The generated texture, once it exists |
| Texture Size | 256px | Output resolution, 32px to 2048px |
| Swatch Size | Fixed 16×16 px | Cell size: fixed 4, 8, 16, or 32 px, or Auto-fit for the largest power-of-two cell that fits every color |
| Save Path | — | Where the texture is written |
Advanced Tool Settings
| Setting | Default | What it does |
|---|---|---|
| UV Inset | 0.25 | How much of each cell the sampled area covers. Lower keeps samples further from the cell edge |
| Protect UV Channel 0 | on | If a mesh has no UVs at all, create a plain UVMap first so swatch UVs never land on channel 0 |
| ORM Atlas | off | Also write a packed texture with R=ambient occlusion, G=roughness, B=metallic — UE5's convention |
| Emissive Atlas | off | Also write an emissive texture from each material's emission color × strength |
| Use sRGB | on | Tag the swatch texture sRGB rather than Non-Color |
| Overwrite | on | Replace an existing file at the save path |
With ORM or emissive enabled, materials that share a base color but differ in roughness, metallic, or emission get their own cells instead of collapsing into one.
Your UVs are safe
This is worth stating plainly, because the obvious implementation gets it wrong: swatch UVs go on their own layer, never over your existing ones. Nothing is unwrapped, and no smart_project runs — flat swatches never needed an unwrap.
Channel 0 gets special protection because engines build tangents and lightmaps from it, and tiny swatch quads make a poor basis for either.
Why the UV inset matters
Each face's loops sit on a small regular polygon centered in its cell, rather than a box scaled to fill it. That keeps samples clear of the cell edges — so mipmaps and anisotropic filtering cannot pull in a neighboring color — while staying non-degenerate, which tangent generation needs.
Swatch Usage
Above the generate button:
Swatch Usage: 27 / 256 (16x16px cells)It reports how many unique colors were found, how many the current settings can hold, and the resulting cell size. Two warnings can appear:
WARNING
Cells under 8px bleed with mipmaps. By mip level 2 a single texel already averages a whole 4px cell. Raise the swatch size or the texture size.
DANGER
Too many colors — generation cancels and tells you the count, the texture size, and what to change. Raise the texture size or reduce the palette.
Vertex Colors
Bakes the same colors into a ProtoColor byte-color attribute on the corner domain — the layout UE5, Unity, and glTF COLOR_0 all expect.
No texture, no UVs touched, nothing to track on disk. Often the better choice for mobile and stylized work, and the quickest route when you only need color to survive the export.
The Unique Colors readout replaces Swatch Usage in this mode, since there is no grid to fill.
Apply Swatch Material
Re-applies the generated swatch material to the collection without regenerating the texture. Useful after you have restored originals and want the baked look back.
Restore Original Materials
Puts the pre-bake material assignment back.
Before either bake, the original per-face assignment is snapshotted as an integer face attribute on the mesh, alongside a name and color table. Because that is a real mesh attribute rather than a list keyed by face index, it survives subdivision, loop cuts, and most other topology edits — restore still puts the right material back on faces that did not exist when you baked. Materials you have since deleted are recreated from the stored color.
Two behaviors, set here or in preferences:
| Behavior | What it does |
|---|---|
| Reassign originals, keep others (default) | Only reclaims faces still wearing a generated material. Anything you have painted since is left alone |
| Replace with originals only | Clears the slots and rebuilds purely from the snapshot |
Generated material slots are dropped once nothing points at them any more.
INFO
Snapshots written by earlier versions of the add-on are still read, so scenes from 1.0 restore correctly.
Next: getting it into UE5 or Unity.