One day before the deadline, I finally finished this project. I explored some interesting algorithms and learned a lot from it.
Using C++ and OpenGL.
Input: The input is a virtual camera, a loaded mesh, and a texture lename.
Sometimes the texture lename is null, in which case no texture should be
Output: The output should be a rendering of the mesh using the given camera
and texture. With each press of the `r’ key, the mesh should be subdivided
using the loop subdivision algorithm.
Loop subdivision algorithm is a two-pass algorithm: the first pass creates all the new points and triangles, and the second refines all the old points that were not created during the first pass. It is an approximating algorithm, which means that the existing vertices are modified during subdivision.
Loop subdivision scheme can only be applied to triangular meshes, but this isn’t really an issue since a mesh of arbitrary polygons can be transformed into a triangular mesh by splitting faces.
Some creenshots of my results: