3D Mesh Simplification 2016-06-15

After working on the Grand Canyon visualization, I started wondering about 3D mesh simplification algorithms. This is because the naive approach in generating a mesh from height map data results in a very large number of triangles even in areas with little detail.

So, I did some research and found what seemed to be a good algorithm for mesh simplification - Surface Simplification Using Quadric Error Metrics, SIGGRAPH 97. It took some time to wrap my head around it, but I was successfully able to implement the algorithm in Go.

My code provides a simple Go API for simplifying a mesh as well as a command-line binary for simplifying an STL file by some percentage.

The bunny example above shows a mesh with 270,000 triangles and a simplified version with just 2,700 triangles (1% of the original).

https://github.com/fogleman/simplify

I still wonder if there's a more specialized approach in converting height maps to meshes that directly incorporates simplificiation...