STEP 3 Meshing: Or, the Janitorial Work of Photogrammetry

So, you’ve finally managed to get a usable point cloud out of whatever piece of photogrammetry software you use – Go you! I’m sure it was a long and arduous journey, the likes of which deserves a ballade to honour you perseverance*. Unfortunately, that point cloud is pretty useless. I mean, it’s really just a cloud of points, it’s right there in the name. The glory that is meshing will fix that for you. Meshlab is pretty heavily recommended program, and I hate to break a trend, so I’ll be using that. Onwards to the rapid-result tutorial!

Step 1, Cleaning your Point Cloud

For this workflow, I’ll be using a 5-6th century BCE mediterranean Amphoriskos from the University of Saskatchewan’s Museum of Antiquities. As someone who knows next-to-nothing about glass work, it’s a gorgeous piece of work combining yellow and blue glass with added handles. It is, however, built a bit like a glass bludgeon in its heaviness. You can also download the raw point cloud file on Sketchfab, if you want to follow along.

Upon opening your point cloud, you should get something like the mess pictured above. All noisy and full of spots and things. Simply dreadful. My favourite ways of deleting those spots are to either manually select them, then delete them, or to select by colour (Filters>Selection>Select Faces by Color) then delete them. It’s pretty straight forward.

point-select
Pro-level editing skills not required

Step 2, Meshing

Once you’ve got something looking like this, more or less clean with only a few bits right near the surface, you’re going to want to mesh this. To do that, go to Filters> Remeshing, Simplification and Construction> Surface Reconstruction: Poisson and you’ll get this box

poisson-reconstruction

Change the values to Octee depth:11 and Solver Divide:9, or something else if you’re willing to risk a program crash. If all goes well, you should get something like this:

Step 3, Colour Transfer

Now, as nice as your featureless, grey object is, some colour would probably be nice. To be that, go Filters>Sampling>Vertex Attribute Transfer and change the switch the source and target meshes so that your “poisson” mesh is the target, and your point cloud is the source.

attribute-transfer

Once you’ve applied the settings you should get coloured mesh that can survive without its parasitic point cloud. To save, File>Export Mesh As…>File_name.off. And you’re done, bask in the glory of your accomplishment!

As you can see, there are some problems with my final product – the neck is insufficiently neck-like, and the whole thing is one block of object (poorly) digitally painted to look like a ungentarium**, but you get the idea.

For further instruction from someone who actually knows what they’re doing, I suggest Mister P‘s youtube tutorials.

Trouble Shooting in Meshlab:

I’ve made a horrible mistake, how do I fix it?
You’re alone and your life is falling apart. “Ctrl Z,” you say, “Ctrl Z”. Nothing happens. It cannot be undone; as it is in life, so it is in Meshlab. Start over.

I did the “vertex attribute transfer” thing exactly like you said, but the colour won’t transfer from my points to my mesh.
No problem, I’ve only gotten it to work for me, like, four times. Total. Ever. What you want to do, after transferring the attributes, is to go to Filters>Color Creation and Processing>UnSharp Mask Color, and click apply. The default settings work fine, but you’re welcome to fiddle bit. And voilà, colour!

The colour still isn’t transferring. Why are you lying?!
Are you absolutely certain you used your point cloud as the source and your poisson mesh as the target? Because it’s not the default setting.

Nothing saves right. My mesh saves as uncoloured points and my points only open in VLC and I think witchcraft was somehow involved.
Okay, for a start, make a copy of your original, just in case. Now, when you’ve finished editing a step, save like this:
(For point clouds) File>Export Mesh as…>Export as .ply
(For meshes) File>Export Mesh as…>Export as .off
There’s probably a more logical way, or a way which saves both mesh and vertices concurrently, but this is the easiest one I’ve found.


*read: irrational stubbornness

** ungentarium. Best word.