Assignment #1:
Subdivision
Objective:
Learn to use a real-life medium sized programming environment & data structure for meshes.
Tasks:
Instructions:
The assignment consists of two components: getting the mesh editting library of your choice running and then coding at least one subdivision algorithm. You may use the mesh editting codebase that we provide as part of the course, or use a library of your choosing. Note that in the latter case, you will be on your own setting up the third-party library.
Installation of the mesh editting library:
Coding:
Your function should take only necessary input parameters, and perform one iteration of the algorithm on the loaded mesh. The algorithm should work correctly if run multiple times.
BONUS: You can get extra marks for implementing any of the following options (bonus at the discretion of the marker). For the description of each option, please refer to online literature on subdivision.
Inputs:
Submission:
You must use the handin software to submit your assignments. First, create a UBC computer science undergraduate account by following the instructions at cs.ubc.ca/getacct. Even if your home department is not computer science, having signed up for CS524 makes you eligible to have an account. Please create an account as early as possible and do not leave it to the last minute.
Create a zip file containing the code for your assignment, and a README file containing your name and student number. Include all the code and build scripts (e.g., CMake). However, do not include any executables, build directories, or visual studio .vs folders.
After creating an account you have to use a department Linux machine to run the hand-in software (there is an online version of hand-in, but that might not work for a graduate course). First, log into a department machine, either by sitting behind one physically or using ssh. Then create the folder hierarchy /your-home-folder/cs-524/a1 in your home folder. For example, using the command line your can write
mkdir -p ${HOME}/cs-524/a1Then, put the zip folder containing your assignment inside /your-home-folder/cs-524/a1. Now using the command line, change directory to your home folder.
cd ${HOME}And run the following command (pay attention to the dash in cs-524).
handin cs-524 a1Then, you must see a message similar to the one below. This one in particular was generated by running handin inside Shayan's undergraduate account, while putting a file named my-assignment.zip inside /shayans-home-directory/cs-524/a1/my-assignment.zip.
Student user ID: u3t0b Now: Mon Dec 3 02:38:09 2018 Due: Fri Feb 1 23:59:59 2019 You have passed all validation steps. PLEASE READ THIS STATEMENT CAREFULLY AND ENSURE THAT YOU UNDERSTAND IT BEFORE SUBMITTING YOUR WORK. By submitting these files, I indicate that I am fully aware of the rules and consequences of plagiarism, as set forth by the Department of Computer Science and the University of British Columbia. I hereby certify that the work in the submitted file(s) was performed *only* by me (the owner of the account used to submit this work), except as acknowledged in the work submitted. Are you sure you want to continue? (y/n) y .........Your assignment is being retrieved. Please be patient. ./ ./my-assignment.zip Checking for TA handin script /home/c/cs-524/bin/handin ... None ... *** Handin process completed. ***You can overwrite your submission as many times as you like (as long as it is done before the deadline). To overwrite your submission with a new one, replace the zipfile inside /your-home-folder/cs-524/a1/ with the updated version and run
handin -o cs-524 a1Please do not leave submission to the last minute. Hand in the very first incomplete code that you have. Then, after every progress you make, overwrite your submission with an updated version.
Late assignments policy: In total, you have 3 grace days for all of your assignments. You can use them whenever you want during the course.
This assignment is worth 15% of your final grade.