- Programming assignment #0:
Programming Environment Setup:
Setup your programming environment to compile, debug, and run the skeleton code which is based on OpenGL, fltk (local mirror: src, doc), and CGAL (local mirror: bin, doc). In order to use CGAL, boost is also needed (local mirror: bin).
The skeleton code can be used to load a 3D model with OBJ format and show it in wire-frame or smooth shading mode alternatively.
The viewing angle can be manipulated by dragging the mouse. Please make sure you can use this program to load all models in this archive or this archive.
- deadlines = 3/21
- Programming assignment #1:
Subdivision Surface: Write a program to implement Loop subdivision method.
Your program should process all (closed manifold genus-0) models in this archive.
You can add any extra feature to your program or implement other subdivision schemes, such as modified butterfly, or sqrt(3).
[sample program]
- deadline = 4/4
- Programming assignment #2:
Mesh Simplification: Write a program that simplifies closed manifold 3D meshes.
This program should use the edge collapse operation and use (vertex based) distance to least-squares plane as the simplification metrics.
Your program should process all (closed manifold genus-0) models in this archive.
You can add any extra feature to your program or implement other simplification schemes, such as vertex removal operation, (vertex based) Gaussian curvature metrics, or global error calculation.
[sample program]
- deadline = 5/2
- Programming assignment #3:
Surface Parameterization: Write a program to implement graph embedding (Tutte) parameterization method and map the boundary vertices to a circle.
Your program should process all (disk-like) models in this archive.
You can add any extra feature to your program or implement other parameterization methods, such as shape-preserving (Floater), conformal (Desbrun), mean value, and harmonic (Eck).
[sample program]
- deadline = 5/23
- Final project:
One or two students form a group.
A group should decide the project topic and get the permission first.
To get the permission, a group has to deliver a short report (1 page, printed), which contains the following items:
- Project title and member name(s)
- Reference (Bibliography)
- project topic due = 4/18
Then, a group should present the proposal in the class, which contains the following items:
- Project title and member name(s)
- Motivation
- What methods will be used?
- Expected results
- Reference (Bibliography)
- proposal presentation date = 5/16
Finally, a group has to deliver a report (10 pages or above, printed) and demonstrate the result.
Of course, a short presentation is also required.
The report must contain the following items:
- Project title and author name(s)
- Introduction (motivation, etc.)
- Theory and methods
- Implementation (OS, programming language, toolkit, etc.)
- Result
- Conclusion
- Reference (Bibliography)
A group also needs to deliver a CD-ROM or DVD-ROM which contains the source and executable codes, result images or animations, presentation slides (PPT or PDF or HTML file), and the above report (DOC or PDF or HTML file).
- demonstration and presentation date = 6/20
- report deadline = 6/27
Last Update: