Skip to content

Project volume data onto meshes

Volume sampling maps microscopy intensities onto a generated, sculpted, or imported mesh while preserving the mesh as editable geometry.

Click to load video from YouTube.
By clicking, you agree to YouTube’s privacy policy.

Prepare a volume and a mesh

Load the source channel as a volume and create the target surface. The target can be an isosurface from another microscopy channel or any mesh positioned in the same coordinate space.

Open the target object's Geometry Nodes workspace.

Retrieve a named grid

Bring the source Volume object into the node tree and use Get Named Grid to choose the microscopy channel. This provides the volume grid that will be sampled.

Channel names are used to connect data across node trees. Keep the chosen grid name, stored attribute name, and shader attribute name consistent.

Sample or project

Microscopy Nodes provides two related operations:

  • Sample Grid on Mesh reads the trilinear volume value at each mesh vertex.
  • Project Grid to Mesh takes multiple samples along the vertex normal and averages them.

Direct sampling is useful when the mesh itself identifies the position of interest. Projection is useful when signal lies within a distance of the surface.

For projection, set the distance, number of samples, and direction: inward, outward, or both.

Send values to the shader

Store the sampled result as a named float attribute. In the target mesh's shader:

  1. Read the same named attribute.
  2. Pass it through a Pixel Intensity control for contrast.
  3. Connect it to a Color LUT.
  4. Feed the resulting color into the surface material.

This makes the projected signal respond to the same scientific color-mapping controls as volume data.

Process before projection

Volume-processing nodes can be inserted before sampling. For example, sharpening, blurring, edge detection, or a custom convolution can emphasize a feature before it is projected onto the mesh.

Because this remains a Geometry Nodes graph, mesh thresholds, projection settings, preprocessing, and shader properties can all be animated with keyframes.

Tip

Build and test this workflow at a small data scale. It composes with geometry masking and sparse high-resolution reloading.