How to Capture Attributes in Blender Geometry Nodes
This guide provides a straightforward overview of using the Capture Attribute node in Blender's Geometry Nodes system. You will learn why capturing attributes is necessary, how to configure the node settings, and the exact steps required to store and transfer geometry data across different stages of your node tree.
What Does the Capture Attribute Node Do?
The Capture Attribute node evaluates a field or property on a geometry stream at a specific point in time and outputs an anonymous attribute bound directly to that modified geometry.
This is crucial when you perform operations that change the geometry structure (such as Extrude Mesh, Subdivide Surface, or Instance on Points). Capturing data before these operations preserves original values—like position, normal direction, or custom values—so they can be read accurately downstream.
Key Settings of the Node
Before connecting the node, configure its settings in the node header to match your data:
- Data Type: Choose the type of data you want to store (Float, Vector, Color, Boolean, Integer, or Matrix).
- Domain: Choose where the attribute is evaluated on
the mesh:
- Point: Evaluates data per vertex or point.
- Edge: Evaluates data per edge.
- Face: Evaluates data per polygon face.
- Face Corner: Evaluates data per face corner (used for UVs and custom normals).
- Spline / Curve: Evaluates data per curve or curve control point.
- Instance: Evaluates data per top-level instance.
Step-by-Step: How to Capture an Attribute
Insert the Node: Press
Shift + Ain the Geometry Node Editor, navigate to Attribute, and select Capture Attribute.Connect the Geometry Flow: Place the node directly along your primary green Geometry line:
- Plug your source geometry into the Geometry input of the Capture Attribute node.
- Connect the Geometry output to the next node in your tree (e.g., Extrude Mesh or Set Position).
Plug in the Value to Capture: Connect the field/data you want to evaluate into the Value socket of the Capture Attribute node. For example:
- Connect a Position node to save the pre-modified location of each point.
- Connect a Normal node to store face or vertex directions prior to extrusion.
- Connect a Random Value node to associate persistent random values to each point.
Use the Captured Attribute Downstream: Connect the output Attribute socket from the Capture Attribute node to any target input later in the node network.
Practical Example: Preserving Original Heights
- Add a Grid node.
- Insert a Capture Attribute node set to Vector and Point.
- Plug a Position node into the Value input of the Capture Attribute node.
- Pass the geometry into a Set Position node with a noise texture to deform the surface.
- Extract the Z-component of the captured attribute using a Separate XYZ node.
- Plug the captured Z-value into a Store Named Attribute node or shader input to color the mesh based on its flat, undeformed height.