Skip to content

Changelog

All notable changes to Proto Color, newest first.

v1.2.2

2026-07-28 — Painting stays out of the way

  • The sidebar is live mid-stroke. The 3D View's main region extends underneath the sidebar and header, so a bounds test could report "in the viewport" while the cursor was over a swatch and the brush would swallow the click. Hit-testing now works from absolute window coordinates and rejects the overlay regions, so swatches and every other control stay clickable while you paint.
  • Releasing the mouse outside the viewport no longer leaves the brush down when the cursor comes back.
  • A collapsed sidebar no longer blocks painting along the right edge of the viewport.
  • [ and ] only cycle color while the pointer is over the viewport, so they can still be typed into palette name fields.

v1.2.1

2026-07-28 — Brush fixes

  • Clicking a swatch mid-stroke now changes the brush. Picking a color used to push an undo step, which tears down a running modal operator — so the click silently killed the stroke and left the panel stuck on Painting — Esc to stop. Choosing a swatch is UI state, not a data edit, and no longer touches the undo stack.
  • Eyedropper cursor while Ctrl is held, switching the moment the key goes down rather than waiting for the mouse to move.
  • [ and ] cycle the brush through the palette while painting, so changing color doesn't need a trip to the sidebar.
  • A stroke ended by Blender itself — a file load, an area closing, an undo from elsewhere — now clears the paint state properly instead of leaving the panel stuck.
  • Color changes refresh every open 3D View, so the sidebar and viewport can't disagree about the current brush.

v1.2.0

2026-07-28 — Paint mode

  • Fill and Paint interaction modes. The palette, presets, and every swatch are shared between them — only the way color lands on the mesh changes. Fill is the existing behavior: pick a swatch and it goes on the whole selection at once. Paint turns swatches into a brush you drag across faces, coloring them one at a time.
  • Ctrl+click picks up the color already on a face, so you can sample from the model instead of hunting for the swatch.
  • The viewport stays navigable while painting. Orbit, zoom, and switch swatches without dropping the brush.
  • Quick Assign follows the modeCtrl+Q loads the brush in Paint mode instead of assigning to the selection.
  • Paint mode runs in Object Mode; Fill still covers face selections in Edit Mode, which remains the better tool for large regions.

v1.1.0

2026-07-28 — Non-destructive pipeline

  • Vertex Colors output mode — bakes material colors into a ProtoColor byte-color attribute on the corner domain, the layout UE5, Unity, and glTF COLOR_0 expect. No texture, no UVs touched.
  • The atlas no longer overwrites your UVs. Swatch UVs go on a dedicated SwatchUV layer that SwatchMaterial reads through an explicit UV Map node; the old unwrap that destroyed existing UVs is gone.
  • Protect UV Channel 0 — when a mesh has no UVs at all, a plain UVMap is created first, so swatch UVs never land on the channel engines build tangents and lightmaps from.
  • Mip-safe swatch UVs, plus a new UV Inset control over how much of each cell the sampled area covers. Cells under 8px now raise a warning, and the default swatch size is 16×16 px.
  • Optional ORM atlas (R=ambient occlusion, G=roughness, B=metallic) and emissive atlas. With either enabled, materials sharing a base color but differing in roughness, metallic, or emission get their own cells.
  • Restore Original Materials survives topology edits — the snapshot is a mesh face attribute rather than a list keyed by face index, so subdivision and loop cuts no longer break it. Both 1.0 cache formats are still read.
  • Global palette library — saved palettes are files in the Blender config directory, so a palette saved in one .blend is available in every other one, with new Refresh and Open Palette Folder buttons.
  • Palette import for Lospec .hex, GIMP .gpl, Adobe .ase and .aco, Paint.NET .txt, and PNG swatch images of any layout.
  • Palette export to .hex and .gpl alongside .json and .png — tick any combination and all are written together.
  • Clean Up matches a proto_color_swatch property, not a name prefix, and materials are identified by a stable proto_color_uid, so swatch links survive renames and .001 suffixes.
  • Nested collections are included, meshes shared by linked duplicates are processed once, and texture sizes now go up to 2048px.
  • Fixed: Clean Up Only Unused deleted nothing, the Swatch Usage readout reported a wrong capacity in auto-fit mode, and atlas generation failed to report clearly when colors could not fit.

v1.0.0

Initial release

  • PROTO:COLOR and PROTO:PALETTE merged into a single add-on with a tabbed UI under 3D View ▸ Sidebar ▸ ProtoTools.
  • Palette generation from any image: colors counted, most common kept, optionally merged by perceptual distance, then sorted around the hue wheel.
  • Quick Assign swatch picker at the cursor, Ctrl+Q by default and rebindable.
  • Texture atlas baking of every flat material color into one square power-of-two texture.
  • Both tools' preferences combined into one page, and the active tab stored per-scene with the .blend.
  • Per-Blender-version packaging: each zip bundles only the Pillow wheels that Blender can load and pins its version range.