Search code examples
cgaldelaunaysurfacelidar

3D alpha shape yielding unexpected convex hull of surface


I executed the 3D alpha shape function with CGAL and I got unexpected results. My input data was a set of 3D points (x, y, z) that represents one building (box) in a flat area (with some noise in the coordinates - small ones). I supposed I would get as a result only the surface triangles that represent the building (walls and roof) and the ground.

But, as a result I got triangles forming a convex hull of the surface. I tried to change the "optimal alpha value" but it was the same.

Is there any filtering process or parameter that I can set to get the surface triangles only?


Solution

  • You need to find the tetrahedons on the surface of the shape first. Then you can try alpha shapes and remove the edges exceeding alpha. In CGAL you Then check all tetrahedons if they are connected with a super tetrahedon. These are the tetrahedons on the surface of the shape. Then apply alpha shapes.