Comp 600.456: Rendering Techniques

Course Syllabus

Assignment 1
Assignment 2
Assignment 3


Rendering Techniques provides a survey of methods for generating 2D digital images from a description of a 3D world. This rendering process is a fundament part of the larger field of 3D computer graphics.

In addition to learning the subject through readings, lectures, and videos, students will gain hands-on rendering experience. Several programming assignments build on each other as the students learn to render images of curved and polygonal 3D models with local and global illumination, reflections, refractions, shadows, and more. Each student will then design and carry out a personal programming project, focusing on some interesting aspect of computer image generation. During the course of this project, each student will read and present a relevant research paper to the class. There will also be two exams, but no comprehensive final exam.

Ideally, students in this course should have previously taken COMP 600.457: Computer Graphics or have some other exposure to 3D computer graphics. Most of the subjects from the Computer Graphics course will not be taught in this course. However, the course is designed so that a skilled computer programmer with moderate mathematical background and no 3D graphics experience can still succeed.

Lecture Topics

The lectures will explore the space of possible rendering algorithms, highlighting both the capabilities and the shortcomings of current approaches. Cutting-edge research advances will be integrated into the space of the traditional techniques. Topics include:


All reading assignments will be available on reserve at the MSE library or available electronically. They present some of the material in more depth than I can cover in class and provide a second source information. None of the texts covers all of the course material, so I will assign readings from several sources

Recommended texts:

Watt A. and M. Watt, Advanced Animation and Rendering Techniques: Theory and Practice, 1992, Addison-Wesley, ISBN 0201544121.

This well-written text covers ray tracing, radiosity, volume rendering, texturing, and more.
Foley, J.D., A. van Dam, S. Feiner, and J. Hughes, Computer Graphics: Principles and Practice, 2nd Edition in C, 1996, Addison-Wesley, ISBN 0201848406.
Known as the "bible" of computer graphics or the "great white book," this text serves as a great reference text on all computer graphics matters except the most cutting-edge topics.


I believe the programming assignments for this class can be a lot of fun if you start them early enough (or they can be nightmares if you wait until the last minute). If you start the programs early (the day assigned, if possible), you will have time to do really great work (and time to ask questions about problems you encounter). Doing great work involves an iterative process in which you thoroughly test all conceivable cases for bugs and develop ever more elaborate and creative demonstrations of your program in action.


The tentative grading break-down (subject to change) is as follows:

Lateness Policy

Late assignments will not be accepted (i.e. no credit). If you have an extenuating circumstance, discuss it with me in advance or bring me a dean's excuse.


You are not required to attend all of my lectures, and I do not plan to take attendance. Because I will provide you with most of my lecture slides, you may be tempted to miss class and rely on the slides. Don't succumb to this temptation! In my experience it is difficult to learn new material from reading someone's slides. Slides may contain figures and examples with unexplained components, simple lists of concepts, etc. You get the idea.

On the other hand, I do require you to attend the classes consisting of paper presentations by your fellow students. You all work hard without pay and deserve the experience of a reasonable audience. I will take attendance on these days, and missing more than two of these classes will result in my directly lowering your final course grade by one position (A goes to A-, A- to B+, etc.). Don't waste these absenses, because excused absenses will be counted as well (if you have more than 2 days of dean's excused absenses during this period, then we'll talk).

Honor Code

Above all, you must not misrepresent someone else's work as your own. You can avoid this in two ways:
  1. Do not use work from someone else.
  2. Give proper credit if you do use someone else's work.
Naturally, even if you give appropriate credit, you will only receive credit for your original work.

For exams, the line is pretty clear: do not communicate with anyone else or use disallowed matierials during the exams. For programming assignments, you may find the line more fuzzy. It's okay to discuss ideas and concepts with other people, but not to share code. Your best bet is simply to not look at anyone else's code or communicate direct examples from your own code. If you want to help someone debug a programming problem, do not do it by showing them how your code looks. Avoid stepping through someone's code with them line-by-line, because the tendency will be to fix problems by making the code exactly like yours, or to incorporate identical fixes into your own code. Learn together by discussing ideas of how things should function in various cases.

On-line Course Information

This syllabus is available on the world-wide web at:
This is the home page for a series of course web pages. Included in these web pages are the course schedule, lecture notes, homework information, etc. Check the pages early and often - I will try to keep the modification dates of the various pages up to date to help you track changes (I will also inform you of important changes during class or via e-mail). All lectures slides which I present using PowerPoint and the digital projector will be made available on the course web pages, so you don't have to copy them down (do take additional notes, however). Any material which I do not present electronically will probably not be made available electronically, but you will still be responsible for learning the content.

May 29, 2000