Assigned: Tuesday, March 14
Due: Tuesday, April 4 by 12:00 noon
The purpose of this assignment is to implement a system for remeshing surfaces with nice triangular meshes. The result should largely parallel the system described by Alliez et al. in their paper Isotropic surface remeshing.
[30 points] Parametric Resampling
Construct a parametric mapping of a given mesh onto the plane.
Given a collection of points in the plane, you should be able to compute
their Delaunay triangulation. Mapping these points back onto the
surface will give you a remeshed result.
[30 points] Lloyd Relaxation
Use Lloyd relaxation to improve an initial (potentially random) set of
point samples. By default, your goal should be to arrange the points so
that they sample the surface uniformly. This will require that you take
into account the local rescaling of the point set due to parametric
distortion. You’ll want to use a quasi-conformal parameterization to
keep this simple.
[30 points] Point Density Control
Allow the user to select different target density functions for the
sample points. You should provide a curvature adaptive density control.
You should also demonstrate a density control that is independent of the
mesh. For instance, you might allow the user to load a gray scale image
to control the density. Think creatively about the possibilities.
[10 points] Quality Code
Your code should be efficient and well-written. It should be easy to
follow and demonstrate quality design.
My collection of sample models includes some selected manifolds-with-boundary suitable for parameterization. You’re welcome to track down and share other examples.
You may assume that a given input model will be homeomorphic to a disk (exactly 1 boundary loop).
You’re free to use whatever outside code you like for mesh representation, parameterization, and Delaunay triangulation. Just make sure to credit your sources.
I recommend CGAL as it provides both mesh data structures and Delaunay/Voronoi code. For mesh code alone, you might also consider OpenMesh. For computing Delaunay triangulations and Voronoi diagrams without CGAL, you might try QHull or hull.