Assigned: Thursday, September 26
Due: Tuesday, October 15 before 5:00 p.m.
You will implement a geometry compression system that can both compress and decompress triangulated surface meshes using the Edgebreaker algorithm. Before beginning the project, I recommend that you read both Edgebreaker papers, paying particular attention to the pseudo-code.
For full credit, your project must meet the following requirements:
Functionality
You should be able to successfully compress and decompress the provided reference models (see below).Inter-operability
You should be able to demonstrate that your system can correctly interoperate with the Edgebreaker reference implementation. In particular, this means that you will need to support the data formats used by the reference implementation. For our purposes, inter-operability means that you can decode files encoded by the reference code, and that it can decode files that you encode.Code Critique
I expect that your implementation will be substantively different from the reference implementation. You should submit a specific and thorough written discussion of the ways your design differs from the reference implementation and what ideas you borrowed from it. Because it should be thorough, you should expect to write a non-trivial document, probably 2 pages at minimum.Quality Code
Your code should be efficient and well-written. It should be easy to follow and demonstrate quality design.
The file format used here is a very limited subset of the Wavefront OBJ format. The files consist of a series of lines:
v x1 y1 z1 v x2 y2 x2 . . . f i1 j1 k1 f i2 j2 k2 . . .
Each v line defines a new vertex. Vertices are implicitly numbered by their order of appearance starting with 1. Each f line defines a triangle by giving the integer IDs of the vertices which forms its 3 corners.
You must hand in all the following things:
To actually hand in your project: