Your project need not be from this list. However, if you want
to pick a topic not on this list you need to discuss it with me first.
Each project described here builds on existing previous work;
to understand what needs to be done you need to read a part
of the referenced paper (typically the introduction is sufficient).
- Surface splines. Implement Jorg Peters'
surface splines. Also see additional information here YOur implementation should work for meshes with boundaries.
- PCCM. Implement
Patching Catmull-Clark meshes. You can use the software available on
the net for reference but your implementation should be done independently,
and should include boundaries.
- Natural parameterization.
Implement the natural parameterization of Desbrun et al. and extend it
to a method that guarantees absence of boundary self-intersections using a
technique described in Sheffer and de Sturler's
Parameterization using angle-based flattening
Try to find a way to guarantee that there is no triangle flips.
Mesh simplification. Implement an edge-contraction simplification algorithm
with cost function similar to Garland and Heckbert's
but also taking into account the effect of edge collapse on the vertex normals.
- Wiener subdivision. Derive and implement a subdivision scheme based on Marc Alexa's
Wiener filtering of meshes
- Simple Manifolds. Implement Cindy Grimm's
Simple Manifolds Extend to higher genus.
- Penrose subdivision. Derive and implement a subdivision scheme for surfaces based on
Penrose tiling. (P. Prusinkiewicz's idea).
- Implicit surface rendering.
Implement hardware-accelerated ray caster based on the
Ray Engine and
use it to render isosurfaces.
- Surface-plane intersection. Design and implement an algorithm for
accurate computation of intersections of Catmull-Clark subdivision surfaces
The starting point can be Bezier clipping (ask me for the copies of relevant