Assigned: Monday, October 25
Due: Thursday, November 11 by 3:00 p.m.
The purpose of this assignment is to implement a system for parameterizing meshes by constructing a mapping into the plane.
[25 points] Linear Parameterization
Solve the basic constrained Laplacian linear system (as outlined by
Floater and Desbrun et al) and thus flatten manifolds with boundary
into the plane. Specifically, your system should accept an input mesh,
map its boundary loop to the unit circle in the plane, and automatically
compute the embedding of the remainder of the surface. To begin with,
solve the system using uniform weights (i.e., the weight of each edge
around vertex i will be 1/deg[i]).
[25 points] Better Weighting Schemes
Uniform weights fundamentally ignore the actual geometry of the surface
being flattened. We will get much better parameterizations by using
shape-sensitive weights. You should implement the following three
schemes:
Discrete Harmonic weights (DCP) — Desbrun et al, Eurographics 2002 (also available from Citeseer mirror)
Discrete Authalic weights (DAP) — Desbrun et al, Eurographics 2002 (also available from Citeseer mirror)
Mean Value weights — Floater, CAGD 2003 (Eq 2.1)
[25 points] Natural Boundaries
Enforcing the requirement that the boundary of the parametric domain can
result in excessively high distortion. It’s preferrable to allow the
boundary to find a more “natural” shape (keeping in mind that we can no
longer guarantee validity). Implement the natural boundary
formulation proposed by Desbrun et al.
[15 points] Parametric/Texture Display
In addition to simply drawing the input surface, your system should also
be able to:
Draw the mesh in the 2-D parametric domain.
Load an arbitrary texture (PNG is the preferred format) and map it onto the mesh.
[10 points] Quality Code
Your code should be efficient and well-written. It should be easy to
follow and demonstrate quality design.
You’ll probably want to browse through our collection of links, particularly the Numerical Libraries section.
My collection of sample models includes some selected manifolds-with-boundary suitable for parameterization.
In the past, I’ve encountered numerical problems with newmat on my Powerbook when solving the DCP linear system. I have not had similar problems with TNT. So I would probably recommend TNT over newmat — at least when using Apple’s compiler.
Having said that, you’ll be a lot happier with the performance of a sparse matrix solver. I personally tend to use SuperLU, although UMFPACK would also be a good choice.