Cleaning up noisy photogrammetry building geometry (planar walls, straight ridges) while keeping the original texture

compare gif (1)

gift_slider

Hi all,

Anyone working with photogrammetry city meshes has probably hit this: the textures look great, but up close the geometry doesn’t hold up. Walls ripple, roof facets are full of triangle noise, ridges saw-tooth and building corners come out rounded. It’s fine from a distance, but it breaks down for close-up renders, lighting studies, measurement, or anything that goes into a CAD/BIM workflow.

The usual fixes all cost you something:

  • Remeshing/retopo loses the UV mapping, so you have to re-bake the texture atlas.
  • Laplacian-style smoothing softens everything, including the edges you wanted to keep.
  • Manual cleanup doesn’t scale beyond a couple of buildings.

I built a Blender add-on called Planer to handle this for the digital twin work I do. It takes a different approach:

  1. Detects planar regions in the mesh (walls, roof facets).
  2. Classifies each vertex by how many regions it belongs to:
    • One plane: it’s projected onto that plane.
    • Two planes: it’s snapped onto their intersection line, so ridges and eaves come out mathematically straight.
    • Three planes: it’s snapped to the three-plane intersection point, so corners come out sharp.
  3. Moves vertices only. Topology connectivity, UVs and materials are left alone, so the photo texture stays correctly mapped with no re-bake.

Every run also reports how far the result sits from the source surface, so you can check that it stayed faithful:

Refined: 195184->195184 faces, 812 planes, 96431 verts snapped
(4210 edge, 388 corner) | deviation mean 0.072m p95 0.275m max 0.864m

[before/after image, rendered untextured so the geometry change is visible]

Practical notes:

  • A city block of about 195k faces takes around 4 minutes on a desktop CPU.
  • The output is always a new object. The source mesh is never modified.
  • It doesn’t fill holes or make meshes watertight. Open photogrammetry shells stay open.
  • It needs Blender 4.2 or newer.

I’d like to hear how others here handle geometry clean-up on reality-mesh data before it goes into visualization or analysis pipelines. And if you have a problem mesh, I’m happy to run it through and share the result.

Product :- Search for PLANER – Photogrammetry mesh refiner

Tutorial Link: https://youtu.be/m9oxz99Ysp0?si=vyhaAiTT5IxKI_nY