CPSC 324, Spring 2001
Final Project and
Schedule of Assignments

As we near the middle of the term, it's time for you to think about what you want to do for your final project in this course, and to get started on it. You should be working on your final project in parallel with the other work that you do for the course.

Your final project can take several forms. Whichever form it takes, you will have a choice of topics. Here are some ideas:

On Thursday, March 22, you will have to give me, in writing, a one paragraph proposal for your final project. This will count for ten homework points. The project itself is due at the end of the term. It must be finished no later than Saturday, May 7, at 1:00 PM. The complete project must be on the Web. If the project involves a research paper, you can convert it to HTML form for posting on the Web. (Most word processors can export a document in HTML format.) I would also like a hardcopy of the paper. If the project does not involve a paper, then it might or might not be appropriate to turn in something in hard copy. You can decide. If you do one or more animations, we can discuss what should go on the Web and what should be turned in. I will be very unhappy if you have not discussed your project with me several times before the end of the term.

After you turn in your project, you might want to put a few finishing touches on your Web portfolio. You can do this up until 7:00 PM on Sunday, May 8. I will grade the Web portfolios at some time after that. The final exam is on Monday, May 9, at 7:00 PM.

Programming Assignments

We are finally ready to begin 3D programming in OpenGL. Of course, writing in naked OpenGL can be painful, so it is also time to add a level of abstraction. From now on, the programming assignments will use a simple object-oriented 3D graphics system built on OpenGL. I have written a first, incomplete version of this system, which you can find in the directory /home/cs324/GObject. The classes for graphics system are specified in the file GObject.h and are defined in GObject.cc. There are several sample programs that use this system. You will want to copy this directory into your own home directory. We will be going over all this in class during the next few classes. This first version does not do anything with lighting or materials, so it is really only suitable for making wireframe models.

For programming Assignment 2, which is due on Tuesday, April 3, you should create a 3D wireframe animation using the GObject graphics system. You might want to do some kind of attractive, complicated "mobile," for example. Your program must use a hierarchical model. There must be at least three levels in the hierarchy, and the animation must make changes on several different levels. If you do an unsegmented animation, you must have at least twelve basic objects. In a segmented animation, where your objects do different things in different parts of the animation, you can have fewer objects.

For Programming Assignment 3, you will add lighting and materials to the GObject graphics system. This means that you will be modifying many of the classes in that system. You will add the possibility of applying a material to an object and of adding lights to a scene. The assignment will also include writing one or more programs to test your system. This assignment will be due on Tuesday, April 17.

For the last assignment, Programming Assignment 4, you will add "indexed face sets" to the GObjects graphics system. An indexed face set is just a polygonal mesh. Your program will be able to display such meshes, given the proper data in a specified format. The assignment will also include a program that uses indexed face sets, perhaps something similar to the pipes screensaver. This assignment will be due on Tuesday, May 1. There will be more information about assignments 3 and 4 when the time comes.

Because of all the other stuff going on, I will try to make the labs self-contained from now on. That is, I will expect you to pretty much finish the work in the lab, except for adding the work to your Web portfolio.

Here is a schedule of events for the rest of the term.

Date What's Happening
Tuesday, March 20 The class today is Lab 4
Lab 3 must be on the Web
Final project proposal due on Thursday
Tuesday, March 27 Lab 4 must be on the Web
Tuesday, April 3 The class today is Lab 5
Programming Assignment 2 is due
Tuesday, April 10 Lab 5 must be on the Web
Tuesday, April 17 The class today is Lab 6
Programming Assignment 3 is due
There is a test on Thursday
Tuesday, April 24 Lab 6 must be on the Web
Tuesday, May 1 Programming Assignment 4 is due
Saturday, May 5 Final project must be turned in by 1:00 PM
Sunday, May 6 Web portfolio must be finished by 7:00 PM
Monday, May 7 The final exam is at 7:00 PM

David Eck, March 5, 2001