Understanding Color Attributes in Blender

Color attributes in Blender, formerly known as vertex colors, allow artists to store color and vector data directly on mesh geometry without using external image textures or complex UV maps. This overview explains what color attributes are, how their domains and data types function, and how they can be applied in material shading, digital sculpting, and Geometry Nodes.

What Are Color Attributes?

Color attributes store color values (RGBA) directly on the components of a 3D mesh. Instead of mapping a 2D image file onto a 3D object using UV coordinates, Blender saves the color information straight to the vertices or face corners of the geometry itself.

In Blender 3.2, the legacy "Vertex Colors" system was refactored into "Color Attributes" to allow for greater flexibility, higher precision, and better integration with Geometry Nodes.

Color Attribute Domains

When creating a color attribute, you must choose a Domain, which determines where the color data is stored on the mesh:

  • Point (Vertex): Stores one color per vertex. Colors automatically blend smoothly across the faces connected to that vertex. This domain is efficient for smooth gradients and low-memory usage.
  • Corner (Face Corner): Stores color values for each corner of every face. This allows neighboring faces sharing the same vertex to have distinct, sharp-edged colors, making it ideal for hard-surface details or pixelated art styles.

Data Types and Precision

Blender offers two main data types for color attributes:

  • Color (Float): Uses 32-bit floating-point numbers per channel. It supports high dynamic range (HDR) values, linear color spaces, and maximum precision.
  • Byte Color: Uses 8-bit integer precision per channel. It consumes significantly less memory but limits color precision, making it best suited for standard display colors or low-poly performance targets.

How to Access and Create Color Attributes

Color attributes are managed through the Object Data Properties tab (the green triangle icon) in the right-hand properties panel:

  1. Select your mesh object.
  2. Go to Object Data Properties > Color Attributes.
  3. Click the + (plus) icon to add a new attribute layer.
  4. Set the Name, Domain (Point or Face Corner), and Data Type (Color or Byte Color).

Once created, you can paint directly onto your mesh using Vertex Paint mode or the painting tools in Sculpt Mode.

Using Color Attributes in Materials

To render color attributes in your final output, you must call them inside the Shader Editor:

  1. Open the Shader Editor.
  2. Press Shift + A and add an Attribute node.
  3. In the Attribute node's Name field, type the exact name of your Color Attribute (or select it from the dropdown).
  4. Connect the Color output of the Attribute node to the Base Color of your shader (e.g., Principled BSDF).

Primary Use Cases

  • Material Masking: Paint white and black values onto a mesh to blend materials, such as adding rust to metal edges or dirt to lower sections of a wall.
  • Performance Optimization: Color attributes bypass the need for external texture files, reducing memory usage in games and real-time graphics.
  • Sculpting Workflow: High-poly sculpts can be painted directly without waiting to unwrap UVs.
  • Geometry Nodes: Color attributes can be generated, manipulated, and transferred dynamically using node setups to drive complex visual effects.