Assignments
You can and should work in groups of 2 for all assignments. Both members will recieve the same grade. You may not switch partners after the previous assignment is due (and the current one is therefore released). You may use different partners for each assignment. Unless you are a CVN student (in which case, contact the TA), no special consideration will be given if you choose to work alone. Note that we may make minor changes to these assignments as the course progresses. In general, you should assume an assignment is released when the previous one is due, and that the basic idea won't change so please don't hesitate to START EARLY. In particular, assignment 1 is now released.I want to reemphasize the point about STARTING EARLY. These assignments are designed for two people groups to spend 3-4 weeks steadily working on them (the length of time between assignments), not for people to cram them in the last week. The workload is likely to be manageable only if you work in a steady disciplined fashion on the homeworks. For the written questions, they are not long but it might be a little stressful to try them at the last moment; you should try to answer them as and when they come up in the lectures for that unit.
Please note that this does not replace registering for the course; you must still do that.
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 instructor or TA 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 written assignment isn't too difficult (about half of it will be directly covered in lecture) but is important in making sure you understand the mathematical foundations. 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 xv or ImageMagick. In some cases, you will provide better antialiasing and resizing than widely available programs like xv, thereby better understanding their algorithms and shortcomings.
The assignment comes with support. There is skeleton code available as a zip file, which should include a dsp file for Visual C++ as well as a Makefile for Unix. The first step is to download the ZIP file and make sure you can compile it. The distribution also includes a sample solution for both Windows and Unix that you can use for reference.
The assignment specification, including written questions is available as a PDF file. Note that the assignment is due at the end of spring break. While you can work on it during break if you want, you do so at your own risk. Instructor/TA support should not be relied on during the break. As always, stay in touch with the instructor or TA. Since this assignment requires implementing some fairly modern ideas, and does not come with support, it is understandable if you get confused or stuck somewhere. In that case, please ask for help. We have placed a number of models here . This is also available as a Zip file (16M). Finally, the most relevant papers on which this assignment is based are by Hoppe 96 and Garland 97 . You are also encouraged to look at the web pages of Garland and Hoppe for additional support material. In particular, note the appendix in Garland's thesis on implementation details for quadric error metrics.
The assignment specification, including written questions is available as a PDF file. Remember that raytracers can be slow and difficult to debug, so start early and stay in touch with the instructor or TA if any problems arise. The support for this assignment consists of an opengl viewer and executables and test scenes for it. This is available as a zipfile which should unzipped in a separate directory.
You have wide flexibility in terms of designing the final project. The assignment is here. There is no skeleton code.