Show HN: An algorithm for smoothly filling holes in 3D meshes
erkaman.github.io
erkaman.github.io
In real life you have contradictory information given you to from a 3D scanner. there are multiple surfaces that seem to intersect and do not technically make sense and you have to make a smooth singular surface from this. Thus the real calculation is volumetric and best fit between surfaces all the while trying to maintain color/texture information.
Stuff like this:
http://sites.fas.harvard.edu/~cs277/papers/mlsSoup.pdf
https://members.loria.fr/Bruno.Levy/papers/VSDM_IMR_2011.pdf
Basically this solution is a toy solution for an idealized problem that is great for a thought experience for undergraduates. So it is great for that.
Who said it had to be? It is a blog post, not a SIGGRAPH paper!
And also because I thought the literature about this out there wasn't really that readable, and I always think there is value in writing expository texts like this.
The case you outlined can be subdivided into (non-dense / non-watertight) surface reconstruction followed by hole-filling on the extracted surface.
Also, the given algorithm could still be used for filling holes in the data of a single-frame of a 3D sensor, where you "only" deal with noise, but not with overlapping data "layers".
I did it by representing the surface implicitly with radial basis function approximations, which can't produce surfaces with holes (well, edges - a torus is fine).
A weakness of this method is that it globally changes the entire mesh! That's bad. You might lose important detail elsewhere. I wonder if those refinement and unrefinement steps are really necessary or not?