CS 4451: Computer Graphics

Introduction to 3D computer graphics; hardware, algorithms, and software organization for computer graphics; three-dimensional transformations; fundamentals of vector and raster graphics; programming projects implementing and/or building on a subset of the above.


Blair MacIntyre
Office: 381 CRB
Office Phone: (404) 894-5224
Office Hours: 1:30-2:30 Wednesday (office, 381 CRB) and 11-12 Thursday (in CCB Commons)

Teaching Assistants


The syllabus to the course is here.


We have set up a swiki at http://swiki.cc.gatech.edu:8080/cs4451a

We will post small bits of useful information here, and encourage students to do the same. If you are unsure if some piece of information is ok to post, ask the professor or one of the TAs.


The prerequisites for this course are

In practice, this means I expect that students are

The quarter equivalents to this course (if this matters anymore) are CS 4390 and CS 4391. If you only have CS 4390, this course is the next in sequence.

There is one required text for the class:

I have an errata of typos in the Watt book, that I've started compiling here. Please check this, and send me any typos you think you may have found.

I also highly recommend the following book on OpenGL (if you :

Finally, in the past we have used this textbook, which may be useful as a second source of information:


The slides I use during lectures will usually be made available online. These files will be Adobe Acrobat files, which you should be able to view and print from a web browser that has the Acrobat plugin. Notes will be linked beside the appropriate lecture in the syllabus.

I will use a variety of applets in class to illustrate various 3D graphics topics, and will put links to them here.

During the course of the semester, we will post sample questions for the various topics covered in class and in the text.

Here are some additional papers you should read:


Grading will be based on a combination of programming assignments and tests. The breakdown is approximately the following:

All programming assignments must execute on the workstations in the teaching clusters. However, since we are using Java and OpenGL for all of our programming assignments, and will try to keep the programs as platform independent as possible, you should be able to work on IRIX, Solaris, Linux, Windows (NT, 98, 2000), and the Macintosh. You should be able to log into any of the Solaris, Linux or Windows machines in the states clusters: all Solaris and Windows 2000 machines support OpenGL and Java and have the GL4Java extensions installed.

You will write 5 programs for this course. All programs must be written in Java. Documentation/code clarity will count as 20% of the grade for each program. The other 80% of the grade will be based on the program's ability to handle various requirements that will be specified when the assignment is given.

Compiling and executing without errors on the published test data is considered minimal competency for any program. Late programs will be penalized 25% per day late. Weekends count as two days. Programs that are more than 2 days late will not be graded.

You may discuss high-level design strategies and specifications for the core parts of the assignments with other students in this class, and are welcome to help each other more extensively with issues not central to the assignments (ie. OpenGL, Unix or Windows problems, Java, etc.). If you are not sure if you should be sharing certain kinds of information, ask the instructor. The bottom line is that your programs and homework are to represent your own work. All coding and detailed design decisions are to be made individually unless otherwise specified. Again, if in doubt, ask.

Here are some pointers to information that may be helpful in getting started:

Programming assignments count for 50% of your final grade. Most programming assignments require many hours of coding. Familiarity with Java will be needed to finish the programming assignments. Do not start the night before, you will be late turning in your assignment.

The online version of the assignments have links to them here. We will also post some selected sample solutions from the assignments submitted. In general, we try to select samples that cover the basic assignments and the options.

Other Homework

There will probably be no other formal homework that needs to be turned in for this course. If there are, we will have online links to the homework and the solutions here.