HOMEWORK 1: SIMPLIFICATION & SUBDIVISION


NAME:  < insert name >



ESTIMATE OF # OF HOURS SPENT ON THIS ASSIGNMENT:  < insert # hours >



COLLABORATORS AND OTHER RESOURCES: List the names of everyone you
talked to about this assignment and all of the resources (books,
online reference material, etc.) you consulted in completing this
assignment.

< insert collaborators / resources >

Remember: Your implementation for this assignment must be done on your
own, as described in "Academic Integrity for Homework" handout.



OPERATING SYSTEM & VERSION & GRAPHICS CARD:  < insert info... >



SELF GRADING TOTAL:  [ < ?? > / 20 ]


PROGRESS POST [ < ?? > / 5 ] 
Posted on LMS by the halfway for the homework.  Includes short
description of status, and at least one image.  Reasonable progress
has been made.


GOURAUD SHADING  [ ?? / 1 ]
basic implementation & efficiency discussion in README.txt

  ./mesher -input bunny_1k.obj -size 500
  ./mesher -input bunny_1k.obj -size 500 -gouraud


< insert notes on gouraud computation implementation, visual quality,
efficiency/performance >


GOURAUD SHADING ON MESHES WITH BOUNDARIES [ ?? / 1 ]


THRESHOLD CREASE ANGLE FOR GOURAUD SHADING [ ?? ]
1 pt extra credit if the dihedral angle between triangles is checked
for sharpness against a tolerance.




BASIC EDGE COLLAPSE  [ ?? / 3 ]
An edge is identified, 2 triangles are removed and the edges and
vertices are reconnected so the mesh is "watertight".  Works for 
closed meshes.

  ./mesher -input bunny_1k.obj -size 500 -wireframe


< insert notes on edge collapse/simplification implementation, visual
quality, debugging, etc. >


EDGE COLLAPSE VALIDITY [ ?? / 1 ] 
Checks to make sure a collapse is legal.  Discussion in README.txt and
an implementation to check if a collapse is legal.


EDGE COLLAPSE PRIORITIZED  [ ?? / 1 ]
Some form of ordering for edge collapses & efficiency discussion


< insert notes on edge collapse/simplification efficiency/performance,
debugging, etc. >


EDGE COLLAPSE ON MESHES WITH BOUNDARIES [ ?? / 1 ]


ROBUST EDGE COLLAPSE IMPLEMENTATION [ ?? ] 
1 pt extra credit if the legality check is robust (never crashing),
works on closed meshes and meshes with boundaries, and the bunny can
be simplified down to a single tetrahedron


EFFICIENT EDGE SELECTION  [ ?? ]
1-3 pts extra credit for using a priority queue or heap to efficiently
select the next edge to collapse


REPLACEMENT VERTEX POSITIONING  [ ?? ]
1-2 pts extra credit for selecting the best position for replacement
vertex in edge collapse


GEOMORPHS  [ ?? ]
1-2 pts extra credit for geomorph implementation


SUBDIVISION REFINEMENT  [ ?? / 3 ]
correctly breaks each triangle into 4 smaller triangles, manages
connectivity correctly (the mesh is watertight after each iteration of
subdivision)

  ./mesher -input cube.obj -size 300 -wirefame


< insert notes on subdivision implementation, efficiency/performance,
visual quality, debugging, etc. >


BASIC LOOP SUBDIVISION RULES [ ?? / 2 ]
valance 6 and extraordinary vertex masks implemented correctly


SUBDIVISION ON MESHES WITH BOUNDARIES  [ ?? / 1 ]
Subdivision works for meshes with boundaries

  ./mesher -input open_box.obj -size 300 -wirefame


SUBDIVISION CREASES  [ ?? / 1 ]
The crease rule is implemented for infinite sharp creases

  ./mesher -input creased_cube.obj -size 300 -wirefame


SEMI-SHARP SUBDIVISION CREASES  [ ?? ]
1 pt extra credit for performing n rules of sharp followed by smooth
1 pt extra credit for floating point crease weights

  ./mesher -input creased_cube.obj -size 300 -wirefame


OTHER EXTRA CREDIT [ ?? ]

Include instructions for use and test cases and sample output as
appropriate.
