Assignments
The three programming assignments, on which evaluation will be based, are released below. Please note that you are not allowed to copy code from other students or other online resources, including those who took the course previously.
Please submit the assignments on TritonEd. The instructions below may provide an option to e-mail the TA as in previous years, which you can still do as a last resort. But, given the size of this year's class, we are requesting submission on TritonEd to keep easier track of assignments. If you e-mail us, we will simply re-direct you to TritonEd submission. Please note that both partners must separately submit on TritonEd, but will of course include a link to the same URL etc. If you are working in a group of two, please include your partner's name in your submission, along with the link to the URL. We will not levy a penalty if you get confused about these instructions, especially in the initial assignment, as long as we receive the assignment by the deadline through some mode of submission. However, you will likely make our life much simpler by following these directions and making your TritonEd submission.
Assignment 1: Image and Signal Processing (due Apr 27, 11:59pm)
The assignment includes a detailed specification available as a PDF file. From the length of the document (8 pages), it should be clear that you need to START EARLY on the assignment, checking with the course staff if you run into problems. However, don't be alarmed. One of the reasons for the length of the text is to specify the assignment clearly and reduce ambiguities. In principle, the programming assignment should be completely self-contained, viz. you should be able to understand and make progress simply by reading the assignment. Of course, the materials in lecture are important for fully understanding the relevant concepts. The work can be rewarding; after completing the assignment you will have an image processing program that can do many of the features of software like Photoshop or ImageMagick. In some cases, you will provide better antialiasing and resizing than widely available programs, thereby better understanding their algorithms and shortcomings.
The assignment isn't really meant to have skeleton code, but we are providing support with a Windows (Visual Studio 13) and Linux/Mac OS Zip file. The Windows version includes a visual studio project and the Linux/Mac OS version includes a Makefile that should allow compilation from a Unix Shell. In both cases, execution will be from the command line (for Windows, this is the old cmd.exe command line or equivalent from within Visual Studio, not the new Power Shell). In case compilation doesn't work or is not supported for your environment, you should be able to create your own project from the source and header files. Please see the instructor or TA IMMEDIATELY if you have issues with downloading and compiling the code. All the skeleton does is set up a basic template and parse options; we support it only minimally and you are welcome to write your own skeleton code. The distribution also includes a sample solution binary for Windows (can be run on Unix/Mac using wine or similar program). You may use the solutions for reference, although of course image processing programs do tend to differ, and I don't expect your solution to be pixel-identical.
Previous students have pointed out an obscure problem when using the MinGW development environment, which requires manually setting the OS flag to OS_WIN. This likely won't affect any of you, but in case the images are distorted, please come talk to the instructor or TA.
Assignment 2: Mesh Simplification and Progressive Meshes (due May 18, 11:59pm)
The assignment is available as a PDF file. We have placed a number of models in OFF format here, and also available as a zip file. The most relevant papers are Hoppe 96 and Garland 97. You may also look at Garland and Hoppe's web pages for additional support material. In particular, note the appendix in Garland's PhD thesis for implementation details on quadric error metrics.
Assignment 3: Final Project (due Jun 12, 11:59pm; proposal and milestone due Jun 1, 11:59pm)
The final project provides many choices, some of which have a concrete step-by-step structure, related to real-time and image-based rendering, and some of which are less well-specified and give you freedom to exercise your creativity. The assignment is specified here. To ensure you stay on track, a project milestone and proposal is due on Jun 1 at 11:59pm. The milestone should be a 1-2 page PDF or website saying what you have accomplished so far and showing at least one image, and a brief 1-2 para proposal of what you will do for the final report. Please do meet with the instructor/TA/Tutor if you get stuck or need ideas.