Using MIConvexHull for surface reconstruction from pointcloud.

Oct 16, 2013 at 5:50 PM
Hello everyone,

I was browsing through the documentation and example projects of this outstanding library. And I was wondering: how could MIConvexHull (if at all) be used to construct a topography map from a point cloud? I am writing a piece of code that takes in point cloud data, normalizes it according to any formula given by the user and than displays it as on the screen:

Image

I would like to produce an effect like this:

Image

Is there a way to achieve such surface reconstruction with MIConvexHull?

Thank you!
Oct 16, 2013 at 5:54 PM
I posted invalid URL's for the images, sorry.
Here are the correct ones:

Current cloud:

Image

Desired surface:

Image

Thank you again!
Coordinator
Oct 17, 2013 at 2:17 PM
There is a body of research on the concept of surface reconstruction from a point cloud. It is a different problem than finding the convex hull. If you call MIConvexHull on the data you showed, you would get back a convex shape - meaning you'd loose most of the interesting curves and crevices.

MIConvexHull can be used to find the Delaunay triangulation though, which - since you are meshing functions of the form z = f(x, y) - could be used. If you find the Delaunay triangulation of the 2D points (like in the example at the bottom right of the home page http://miconvexhull.codeplex.com/) then you would effectively have a meshing of the 3d surface.
Oct 17, 2013 at 3:25 PM
Edited Oct 17, 2013 at 4:44 PM
Calculating the Delaunay for the X-Z plane and then adding height is actually a great idea.
Thank you!

After making a very hasty test implementation, doing a test run with a naive Y-assignment method and no lighting, the result is :

Image

That's 300k+ triangles.

Adding lighting, colour and properly indexing the 3D points before their X,Z coords go into the Delaunay should give a great result.

The accuracy and speed of your Delaunay implementation is incredible, great work!