A Class Project for ME758 under Professor Vadim Shapiro

Fitting B-Spline Surfaces to Polygonal Soup

Introduction
Mathematical Formulation
Results
Software
Dataset
Presentation


Introduction:

Although the generation of triangulated surfaces for arbitrary complex geometries is now well studied problem and in the last few years many efficient algorithms have been implemented and freely available. However, there are many applications in simulations and computer graphics where having all quadrilateral or quad-dominated models provide huge advantages, but unfortunately, generation of All-Quad Elements is non-trivial that can meet all the quality requirements that users expect from such a mesh.

Fitting  triangular mesh with B-Spline surfaces and then generating quadrilateral mesh received attention from many researchers in the past and our present work is an effort in  an efficient implemention of basic ideas established in (1) Eck & Hoppe (2)  Venkat and Levoy (its source code which will be freely available.)  The standard pipeline of generating B-Spline surfaces starting from point clouds is given in the following picture.


FloawChart 

As reported by many earlier papers, the major obstacles in generating B-Splines are in the (1) patch creation  and (2) high order continuous patches stitching process .  Venkat and Levoy followed manual path approach which is extremely time consuming and rely on human cognitive capabilities to segment the model into number of patches. The advantages of this approach is  that the quality of the patches in in general very high. Eck & Hoppe on the other hand, followed the path of automatic patches creations, which creates patches without human intervention at the expense of possibly generating degenerate patches and may require significant post-processing to get reasonably good quality patches.  In general,  many users have high expectations of curvature aligned and aesthetically pleasing quadrilateal mesh than they have for triangle mesh. In many applications such a mesh may have huge computational advanatges also.  

Our present work is aimed at improving two biggest bottlenecks in this pipeline:
                The initial parameterization have influence on the performance of the iterative solver. The initial parameterization of a given quad patch which is homeomorphic to a open disk is done by                         either (1) Floater parameterization (2) Harmomic Map Parameterization.


Mathamatical Formulation:

The general equation of B-Spline is given as

eq1
Where C(i,j) are control points and B(u) and B(v) are the basis functions in the "u" and "v" direction respectively. This equation can be written in the matrix form as
eq2
In the surface fitting problem, the unknown quantities are the control points, which can be obtained using least square solution as

eq3
This raw formulation doesn't guarantee smoothness of control points values, therefore, some regularization is performed so that the norm of control points is also minimized. This leads
to standard "Tikhnov Regularization".
eq4
Here Gamma is any suitable matrix, but in our implementation it is set to identity matrix. Therefore, the modified controls points are given by
eq5
Even after regualization, there is no guarantee that control points of the adjacent patches will match, if they don't match, then the resulting model will not be watertight and seams will be visible in the model. In order to provide G1 continuity, we will use "constrained least square problem".  With this approach. the boundary controls points are fixed and only the internal control points are determined  using the least square solution. The initial values of the control points is determined from the unconstrained least square solution  described above. This ensures that the boundry control points are fixed. However, this simplicity assumes that the number of controls points are the same on two adjacent surfaces therefore, this requirement probihibtes using adaptive controls points.   
eq7
Once we have control points for each patch, the determination of full resolution mesh is simple.

Results:



      Cyl Torus bunny
Foot
Hand
Cylinder : 8 Patches
Torus : 8 patches
Bunny 50 patches.
 Foot 64 patches.


Note that in these figure, tangent discontinuity is not resolved properly, but visually it is absent. Mathematically, there might be someshort comings in our approach to ensure C2 continuity.

Conclusions:

Both manual and automatic approches have advantages in creating high quality B-Spline patches creations and in this project, we have made an attempt an engineering attempt  to improve both the methods. Although our present results have shown good quality, but it still has one serious problem that the quadrilateral mesh may not be curvature aligned. There are some premature ideas of generating vector field over the model to give some feedback to facilitate an user to create nice patches, but this is the work for the future.

Software Information:

        The software (JAAL) has many independent components written in C/C++ (both in-house and integrated public domains software). This software will be freely available once rigrous testing and document is complete. We used the following 3rd party software in our prototype software development:

  1. Intel MKL library for least square solution.
  2. Floater Parameterization ( from SINTEF )
  3. Geodesics on Polygonal Mesh (Google).
  4. libQGlViewer for visualization and Qt4.5 for GUI development.
All the triangulated models were obtained from Standord and Aims@shape (http://shapes.aim-at-shape.net/viewmodels.php)

Bibliography: