This project was part of my Advanced Computer Graphics course. The goal was to gain experience with low-level manipulations of triangular meshes by implementing algorithms to simplify (reduce number of triangles), subdivide (increase number of triangles), and denoise (smooth without losing important features). 
I wrote all the code for this project in C++. Both the input and output to the program is an .obj file (where the input has to be a manifold, closed mesh). 
Simplification
Implemented using the quadric error simplification method.
Subdivision
Implemented using the Loop subdivision algorithm. 
Denoising
Implemented by using a bilateral denoising filter on the mesh.
Back to Top