Assignment #1:

Mesh Processing “Hello World”

 

Submission date: Friday, Sep 19 2008, 23:59

 

Objective:

 

Learn to use a real-life  medium size programming environment & data structure for meshes.

 

Tasks:

 

1.                  Experiment with the GUI and the mesh processing tools.

2.                  Perform simple data-structure operations.

  

Instructions:

 

Your  assignment consists of three components:

 

1.                  Installation: Download and install Graphite as explained in class (http://www.cs.ubc.ca/~iansouth/524/). Follow the instructions given in class about adding new code to the system.

2.                  GUI/Tools Experimentation: Use the Graphite environment to perform the following tasks. As part of the assignment submission include a power-point document with images documenting your actions.

a.       Load a model into graphite (use a closed manifold model) and compute its size (number of faces, vertices).

b.      Apply a mesh simplifier to a model reducing it to (about) half the size.

c.       Generate a texture atlas for the model and use it to texture the model using the checkerboard pattern.

d.      Cut the model in half (use the edge/path cutting tools) and move the two halves apart. 

3.                  Basic Graphite programming and data structure manipulation: Your goal here is to compute, visualize and manipulate independent sets of vertices and faces on a mesh. When implementing the manipulation, pay attention to GUI friendliness and visualization quality.   Note: You can replace independent set computation with another processing algorithm of equal complexity – please check with Alla before using this option.

 

An independent set of faces is a set such that no two faces in the set share a vertex, and the set is maximal (that is, no other face can be added to the set without breaking the adjacency rule). An independent set of vertices is a set such that no two vertices in the set share an edge, and the set is maximal (that is, no other vertex can be added to the set without breaking the adjacency rule). Neither set has to be the maximal set out of all the possible independent sets for the model, it just has to be a legal set.   

1.      Add a menu item which, when selected, runs an algorithm of finding an independent set of faces, out of all the faces in the model, and highlights them in red.

          If no model is currently loaded, an appropriate error message should be displayed (think of appropriate mechanism), and the algorithm should not run.

         Each time the algorithm runs, the color of all the faces should be reset (in case the algorithm had already run before, and some of the faces are highlighted).

2.      Add a menu item which, when selected, runs an algorithm of finding an independent set of vertices, out of all the vertices in the model, and highlights them in blue. (Note think how to make the highlighted vertices more noticeable)

          If no model is currently loaded, an appropriate error message should be displayed (think of appropriate mechanism), and the algorithm should not run.

         Each time the algorithm runs, the color of all the faces should be reset (in case the algorithm had already run before, and some of the vertices are highlighted).

3.      Add an option for the user to click on a face, and then compute and visualize an independent set which includes the selected face.

4.      Add an option for the user to click on a vertex and then compute and visualize an independent set which includes the selected vertex.

5.      Add an option for the user to delete all the faces in the selected set from the model (without crashing  :).    

6.      Provide a README explaining clearly how to run your method & activate all the different features it has.

 

Submission:

 

Send an email to Ian (iansouth@cs.ubc.ca) with the subject “DGP assign1” containing a zip file with your Graphite sources – you must include the entire source-tree for your quickStart module, the ppt file with the images (for part two of the assignment), and the README. Do not include unnecessary files (standard graphite sources, executables, object files, etc...).

In the email write your name and contact e-mail address.  

All email should be received by Friday, 9/19/08, at 23:59.

 

No late submissions will be accepted.

 

This assignment is 10% of your final grade.

 

 

 

 

Good luck!