Multi-level Partition of Unity Implicits

Yutaka Ohtake , Alexander Belyaev , Marc Alexa , Greg Turk, and Hans-Peter Seidel

ACM TOG (Proc. SIGGRAPH 2003), 22(3):463-470, 2003.


We present a shape representation, the multi-level partition of unity implicit surface, that allows us to construct surface models from very large sets of points. There are three key ingredients to our approach: 1) piecewise quadratic functions that capture the local shape of the surface, 2) weighting functions (the partitions of unity) that blend together these local shape functions, and 3) an octree subdivision method that adapts to variations in the complexity of the local shape. Our approach gives us considerable flexibility in the choice of local shape functions, and in particular we can accurately represent sharp features such as edges and corners by selecting appropriate shape functions.


PDF file [6.4 MBytes]

PS file [8.8 MBytes]


Very preliminary version of MPU (March, 2003)

Preliminary version of MPU (October, 2003)

The zipped file includes a Windows executable binary file and the source code to be complied by Microsoft Visual C++ 6.0.

(This version can only perform a standard polygonization of MPU implicits created from the input points. A later version will include boolean operations, blending, mesh optimization for polygonized surfaces, and visualization by ray-tracing.)

Please note that the reconstructed sharp edges and corners are usually lost during the polygonization stage. In order to restore them we use the approach described in

Y. Ohtake and A. Belyaev, "Dual/Primal Mesh Optimization for Polygonized Implicit Surfaces", ACM Solid Modeling 2002, Saarbruecken, Germany, June 17 - 21, 2002, pp. 171-178.

Probably we will bind the programs together.

Sample data

Examples of input point datasets

Examples of output meshes obtained as polygonized MPU implicits

Talk slides

Talk slides at SIGGRAPH2003

Presentation of the MPU method at a local MPI-AG4 meeting