Skip to content

Fill Holes

Fill Holes closes the small gaps in a model: each hole gets a patch that continues the surface around it, so a hole in a curved surface is filled with a curve, not a flat plate. Openings larger than the limit, like the neck of a head or the open end of a pipe, are left alone. Put it right after Clean.

A hole is a loop of open edges: edges with a face on only one side. The stats strip under a node’s parameters counts them as Border loops. Fill Holes fills every hole within the limits you set:

  • Max perimeter (on by default, 10 cm): the length around the hole. Fit the model to its real size first (a Transform with Fit size), so this reads in real centimetres.
  • Max edges (off by default): the number of edges around the hole. Useful on low-poly models, where a hole’s edge count says more than its size.

Some loops are never filled, whatever the limits:

  • The edge of a sheet. A flat card, a leaf or a small Grid is one loop of open edges all the way around. Filling it would lay a second copy on its back, so it stays open.
  • Open chains. Open edges that do not close into a loop, such as the edge of a fin sticking out of the surface, are not a hole.

The amber note on the node says what happened, for example Fill Holes filled 3 holes (124 faces).

  • A hole in a flat area, or one bounded by a sharp edge (a box missing its top, the open end of a tube), gets a flat cap made only from the points around it.
  • Any other hole gets a smooth patch. The patch gets extra points until its triangles are about the size of the ones around it, then it is shaped to continue the surrounding surface without a crease at its edge.

The patch takes its look from the edge of the hole. Its UVs, vertex colours and other vertex data blend smoothly across it. Where a UV seam runs into the hole, the patch takes one value instead, a solid spot of the texture beside it. Its faces take the material of the faces around most of the hole.

The new faces are named as a selection, filled by default (Filled selection), so a later node can work on just the patches: paint over them, for example. The rest of the mesh is untouched. When you export an imported model, only the parts that got a patch are rewritten.

A hole next to faces that point the wrong way is filled to match most of its edge, so run Normals after Fill Holes. The patches have no real texture: if you bake later in the chain, bake from Clean’s output, and the bake fills the patches from the texture beside them.

Mesh

The mesh whose holes to fill.

Mesh

The same mesh with its holes within the limits capped, the new faces named as a selection (default "filled").

Parameter What it does Default
Limit perimeter Only fills holes up to a size around. On
Max perimeter The largest hole filled, as its length around. Shown when Limit perimeter is On. 10 cm
Limit edges Only fills holes with up to a number of edges. Off
Max edges The most edges a filled hole may have. Shown when Limit edges is On. 16
Filled selection Names the new faces as a selection, so a later node can pick them. Leave blank for none. filled
  • Clean: weld the cracks and remove the fragments first.
  • Transform: give the model its real size first, with Fit size.
  • Normals: fix the winding and set the shading after filling.
  • Polyreduce: lower the triangle count after filling.
  • Topology nodes: the other nodes that change the polygons, not the shape.