Comp 600.[34]56: Rendering Techniques

Course Syllabus

Syllabus
Schedule
Submission
2000 Offering
Program 1 Program 2 Program3 Program 4
Project

Professor

Jonathan Cohen
cohen(at-symbol)cs.jhu.edu
Office Hours
(NEB 218-B)
MW 3:15-4:30
or by appointment

Teaching Assistant


Chris Niski
niski(at-symbol)cs.jhu.edu
Office Hours
(CS Lab)
Tuesday 2-4
Wednesday 12-2
Thursday 1-3

Overview

Rendering Techniques provides a survey of methods for generating 2D digital images from a description of a 3D world. This rendering process is a fundamental 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 3D models with local and global illumination, reflections, refractions, shadows, and more.

For the 400-level course, 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.

This course is designed as to be complementary to COMP 600.457: Computer Graphics. The courses do not have any strong order-dependency. However, the more programming experience a student has in coming into this course, the more prepared they will  be for the programming assignments, projects, etc.

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:

Reading

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.
You can get these online from a number of book vendors, including Amazon (WW,FVD), Barnes and Noble (WW,FVD), etc.

Assignments

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.

Grading

The tentative grading break-down for the 400-level course (subject to change) is as follows: The grading break-down for the 300-level course is still to be determined.

Lateness Policy

Programming assignments may be turned in up to 2 days late, with a penalty of 10% for each day late. All other assignments, including the final project, must be turned in on time to receive credit.

Attendance

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! It is difficult to learn the course material just from reading my 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. This guarantees that you each have a reasonable audience for the presentation you worked so hard to prepare. 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.

The following CS Department Integrity code also applies to this class:

Computer Science Department Academic Integrity Code

The strength of the university depends on academic and personal integrity. In your studies, you must be honest and truthful. Ethical violations include cheating on exams, plagiarism, reuse of assignments, improper use of the Internet and electronic devices, unauthorized collaboration, alteration of graded assignments, forgery and falsification, lying, facilitating academic dishonesty, and unfair competition.

Academic honesty is required in all work you submit to be graded. Except where the instructor specifies group work, you must solve all homework and programming assignments without the help of others. For example, you must not look at any other solutions (including program code) to your homework problems or similar problems. However, you may discuss assignment specifications with others to be sure you understand what is required by the assignment.

If your instructor permits using fragments of source code from outside sources, such as your textbook or on-line resources, you must properly cite the source. Not citing it constitutes plagiarism. Similarly, your group projects must list everyone who participated.

Falsifying program output or results is prohibited.

Your instructor is free to override parts of this policy for particular assignments. To protect yourself: (1) Ask the instructor if you are not sure what is permissible. (2) Seek help from the instructor or TA, as you are always encouraged to do, rather than from other students. (3) Cite any questionable sources of help you may have received.

Students who cheat will suffer a serious course grade penalty in addition to being reported to university officials. You must abide by JHU's Ethics Code: Report any violations you witness to the instructor. You may consult the associate dean of students and/or the chairman of the Ethics Board beforehand. For more information, see the guide on Academic Ethics for Undergraduates (http://www.advising.jhu.edu/ethics.html) and the Ethics Board web site (http://ethics.jhu.edu).

On-line Course Information

This syllabus is available on the world-wide web at:
http://www.cs.jhu.edu/~cohen/RendTech2003/syllabus.html
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). Unfortunately, I cannot guarantee that the notes will be available in advance of the lecture (but for many topics, the notes from last year's slides may be quite similar). 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.

April 2,, 2003