15-864 Assignment 2: Mesh Smoothing
In this short assignment you will get some final practice performing
operations on polygon meshes. You may also find these techniques useful
for creating meshes for future projects.
- Implement an explicit solver for both diffusion- (using the
Laplacian operator) and curvature-based smoothing on meshes, as
described in [Desbrun
et al. 1999]. You may use an explicit forward Euler method to
solve the equation (as described in the paper); be cogent of the
timestep restriction, however.
- Provide the ability to change both the lambda value and the
number of iterations via either command-line arguments or interactive
keystrokes. Document this in your README file.
- You should already have a viewer capable of displaying polygon
meshes from the first project, as well as
an .obj reader. Present the results of the smoothing in this viewer.
Also, as an intuitive way to aid in debugging, display update values
(e.g., scaled Laplacian or curvature) at the vertices. For example, the
head at right uses the Matlab Jet colormap to
visualize curvature values. The color scheme you use can be anything
you want, provided that it is clear where the high/low values are.
- As a final step, compare the two smoothing
approaches (curvature flow and laplacian smoothing) by showing a
side-by-side comparison after N iterations for a few values of N
(a simple jpeg image is sufficient here). For extra coolness factor,
optionally turn in a side-by-side video of the two approaches
- At a minimum, your program should work with the Meyer head and sphere meshes. These will
demonstrate that you have correctly implemented the scale-dependent
umbrella operator. It should also work with the simple roughened sphere example (this is a very
simple mesh with well-conditioned triangles, so it should be an
excellent one to test your code on). You can also download these meshes
packaged up as a ZIP file.
- As usual, turn in your full source code, plus a README
summarizing build instructions, interface details, etc.
- If you can't recall how to control materials in OpenGL, Nate
Robins has a refresher.
- Take a look at this page for some useful
- If you're (still?) having trouble logging into the lab machines,
please see this page.
- Gabriel Taubin. A Signal
Processing Approach to Fair Surface Design. Proceedings
of SIGGRAPH 95. pp. 351-358, 1995.
- Mathieu Desbrun, Mark Meyer, Peter Schröder, and Alan H.
Fairing of Irregular Meshes Using Diffusion and Curvature Flow.Proceedings
of SIGGRAPH 99. pp. 317-324, 1999.
Questions? Contact Christopher Twigg.