Material ID – One-Click Material ID Pass for Blender

Fulford in Materials and Shading


Material ID

A material ID pass for Blender, the way V-Ray does it. Every material renders as one flat block of colour, so you open the image in Photoshop, magic-wand a colour, and get a clean selection of everything using that material.

It is a checkbox, not a workflow. Tick Material ID under Passes and it is there — colours assigned, pass registered, and kept in step with your scene from then on. Add a material, rename one, reshuffle the palette; the pass follows without you pressing anything. Panels in Cycles and EEVEE, on Blender 4.2 and newer.

One-click material ID pass for Blender: a Cycles render beside its flat colour ID pass, with each material's name and hex value


At a glance

Material ID requirements: Blender 4.2 or newer, one checkbox setup, real AOV pass, PNG and Photoshop ACO swatch export, GPL-3.0-or-later


How it works

Each material gets one AOV output node carrying a flat colour, added and maintained for you. That makes the result a real render pass rather than a separate export: it appears on the Render Layers node and inside a multilayer EXR next to Combined, with no second render.

How the Blender material ID pass works: tick the checkbox, colours assigned, a real AOV pass, exact PNG, select in Photoshop

Your compositor is left alone. Render ID Pass builds the output node it needs, renders, and removes it again — the graph is left as it was. Add File Output Node is there for when you do want the pass written on every normal render, and it only runs when you press it.

Why the colours come out exact

This is the part that decides whether a magic wand at tolerance 0 actually works, and it is the part every hand-rolled ID setup gets wrong. Three separate things in Blender will quietly ruin a flat colour. All three are handled.

Three things that ruin a flat colour pass in Blender: the AgX view transform, dithering, and anti-aliasing, each shown with and without the fix

Table: view transform, dithering and anti-aliasing, what each does to a material ID pass and how it is handled

The result: the hex shown beside a material is the hex in the file. The render test draws five materials in a 90×90 frame and asserts exactly six colours in the PNG — five materials plus the black background — with every material covering an identical pixel count. The sample render above, with eight materials, measures nine colours the same way. No blended edge pixels.

What an edge looks like up close

Anti-aliased versus crisp material ID edges magnified to single pixels, showing blended pixels a magic wand skips

Colours that stay put

Colours come from a hash of the material name, not its position in a list. That is what lets a re-render months later drop straight onto artwork you already cut.

Material ID colours stay the same when a material is added or deleted, because they are hashed from the material name

Table: how material ID colours behave when you add, rename or delete a material, or reopen the file months later

Table: the Stable, Max Contrast and Seed palette options for the Blender material ID pass

Generated colours never collide with each other or with a pin: pins are placed first, generated colours fill in around them, and any remaining collision is nudged until it is unique. No generated colour is black or near-black, because black is the background. Two materials you pin to the same colour are your call; the add-on does not stop you.

Per-material control

Table: per-material controls for the material ID pass: pin a colour, exclude a material, select objects, scope

  • Pin — override the generated colour with one you choose. The picker's hex field shows exactly what lands in the file.
  • Exclude — leave a material out. It renders black, merging with the background, which is right for anything you never select.
  • Select Objects — select every object using the highlighted material, straight from the palette list.
  • Scope — cover only the materials used in this scene, or every material in the blend file.

Export

Material ID export options: Render ID Pass, Photoshop ACO swatch export, CSV legend, 8 or 16-bit PNG, crisp edges

Load the .aco into Photoshop's Swatches panel and you are clicking material names — "Brick Wall", "Oak Floor" — instead of hunting for a pixel to sample.

Photoshop swatches named after their Blender materials, plus a CSV legend of names and hex values

If you have tried this before

The three things that go wrong when people roll their own ID pass, or reach for a random-colour override:

  • Colours collide. Random-colour methods hand two materials the same colour, or two so close you cannot tell them apart — and you find out in Photoshop. Here, generated colours never collide with each other or with a pin: pins are reserved first, generated ones fill in around them, and any remaining collision is resolved before the render.
  • You re-render hoping for a usable palette. There is no seed and no repeatable assignment, so you roll again. Here the palette is name-hashed and deterministic, with a Seed for when you want to reshuffle on purpose.
  • The edges are aliased. Cryptomatte and ordinary renders both give you filtered edges, which is correct for compositing and useless for a tolerance-0 wand. Crisp Edges renders with one sample and no pixel filter, so no pixel is a blend.

Compared with the alternatives

Material ID compared with Cryptomatte, Blender's Material Index pass, and building emission materials by hand

Cryptomatte is the better tool if your selection happens inside a compositor that understands it — it handles overlapping and anti-aliased coverage properly, and it is free. This add-on is for the case where the selection happens in Photoshop and you want flat colours a magic wand can grab.

Known limits

Material ID known limits: anti-aliasing on normal renders, Blended render method, partial alpha, linked materials, render engine

The one worth reading twice: a material whose Render Method is Blended writes no ID at all. That is a common setting for archviz glass, so a window set that way will be missing from the pass. Set it to Dithered and it appears.

Installation

  1. Blender ▸ Edit ▸ Preferences ▸ Get Extensions ▸ Install from Disk, and pick the zip. Or drag the zip onto Blender. If you had an earlier version, remove it first.
  2. Blender asks once for permission to write files. That is for the ID pass image and the Photoshop swatches.
  3. Properties ▸ View Layer ▸ Passes ▸ tick Material ID.
  4. Set Output under Material ID Export. //matid/ writes next to the blend file.
  5. Render ID Pass, then Export Swatches. Load the .aco into Photoshop.

No licence key, no account, no internet connection.


Material ID 1.0.0 — by Fulford



$9.99

Have questions about this product?
Login to message

Details
Blender Extension Compatible Yes
Published about 4 hours ago
Blender Version 5.0 - 5.2
Extension Type Add-on
Render Engine Used Cycles, Eevee
License GPL