W Randolph Franklin home page
... (old version)
ComputerGraphicsFall2008/ home page Login


ECSE-4750 Computer Graphics
Electrical, Computer, and Systems Engineering Dept.
Rensselaer Polytechnic Institute
Troy NY 12180 USA
Fall 2008

Updated Catalog Description

ECSE-4750 Computer Graphics

Introduction to Interactive Computer Graphics, with an emphasis on applications programming. Objects and viewers, and the synthetic camera model. Graphics architectures, the graphics pipeline, clipping, rasterization, and programmable shaders. Input and interaction. Geometric objects, homogeneous coordinates, and transformations. Viewing, hidden surface removal, frame and depth buffers, compositing, and anti-aliasing. Shading, light and materials, texture mapping, ray tracing, and radiosity. Intellectual property concerns. Extensive programming with the OpenGL API and C++. Prerequisite: ECSE-2610 or equivalent. Fall term annually. 3 credit hours

Why Take This Course?

The major technical problems with computers have been solved. Computers are fast enough for any application that could have been imagined when I was a student. A major remaining problem is interfacing between people and computers. The solution will involve better graphical interactions. However any big project's success rests on proper foundations. This course introduce you to the mathematical and programming tools needed to develop GUIs (graphical user interfaces).

Course Objectives

  1. to learn the principles and commonly used techniques of computer graphics, e.g.,
    1. the graphics pipeline
    2. Bresenham algorithm
  2. to develop a facility with the relevant mathematics, e.g.,
    1. 3D rotations using both vector algebra and quaternions
    2. transformations using homogeneous coordinations.
  3. to gain introductory proficiencies with OpenGL, the most widely used platform-independent API, and perhaps with Qt, a major platform-independent widget set, e.g.,
    1. initializing, setting colors, drawing various primitives
    2. implementing menus with sub-menus

Why Not To Take This Course

  1. You don't like programming.
  2. You don't like documenting your programs.
  3. You don't like math.
  4. You don't like reading.
  5. You don't like writing exams at the official scheduled times.

Prerequisites

This is a senior CSYS course, and assumes a moderate computer maturity, represented in the catalog by ECSE-2610 (Computer Components & Operations). You should know some HW, but if you don't have that specific course, don't worry.

Since there is programming in C or C++, you also must know some high level language, which you can translate into a knowledge of some C. If you don't know what a pointer is, then drop this course and take Computing Languages first. A good review book on C is Kelley & Pohl, A Book on C.

nComputer Graphics also assumes that you know, or be able to learn, some basic linear algebra, up to the level of what an eigenvalue is.

If you're uncertain about taking this course, then, by all means, talk to me, or to previous people in it. If there is one specific fact that is unfamiliar, such as eigenvalue, then there's no problem at all.

Professor

W. Randolph Franklin. BSc (Toronto), AM, PhD (Harvard)

W. Randolph Franklin

I've been doing graphics related programming since the 1960s, and have been teaching versions of this course since 1982. I've been at RPI since 1978, apart from several absences, including a year at Berkeley, 3 months at Genoa, and shorter times at Laval University in Quebec City, the Commonwealth Scientific and Industrial Research Organization in Canberra, and the National University of Singapore. I also spent 2 years 7 months as Director of the Numeric, Symbolic, and Geometric Computation Program at the National Science Foundation, recommending how to spend about $30M of your tax dollars (thanks!).

My current research on representing terrain elevation, and compressing it, and siting observers and planning paths on it, is largely supported by the Defense Advanced Research Projects Agency. DARPA people are crazy. My main worry is that I'm not crazy enough for them. I also like to examine terrain on foot; this summer I walked 164km, including 11km up, from Chamonix to Zermatt, in 12 days.

Office Jonsson Engineering Center (JEC) 6026
Phone (518) 276-6077
Email frankwrATrpiDOTedu the obvious substitutions
Web http://wrfranklin.org/
Office hours

after each lecture. Usually I stay as long as anyone wants to talk. Also by appointment.

Informal meetings

If you would like to lunch with me, either individually or in a group, just mention it. We can then talk about most anything.

Preferred communication medium email

Teaching Assistant

Jixu Chen, chenjFOUR ATrpiDOTedu

Course Homepage

http://www.ecse.rpi.edu/Homepages/wrf/pmwiki/ComputerGraphicsFall2008

That will contain:

  1. Announcements
  2. One line summaries of the classes
  3. Links to homeworks etc and solutions.

Fall 2007 (80% the same): http://www.ecse.rpi.edu/Homepages/wrf/pmwiki/ComputerGraphicsFall2007

Reading Material

Textbook

As listed on the RPI Bookstore site:

 ECSE - 4750 - 01 - TROY
 COMPUTER GRAPHICS
 INTERACTIVE COMPUTER GRAPHICS...OPENGL
 9780321535863
 Author: ANGEL 	Edition: 5TH 	 
 Pub: AW 	Req / Opt: R 	 
 New Price: $113.75 	Used Price: $85.50

That is a 7% price increase from last year; sorry.

Angel's web site for his text is http://www.cs.unm.edu/~angel/BOOK/INTERACTIVE_COMPUTER_GRAPHICS/FIFTH_EDITION/

I am not listing an OpenGL book this year because there is so much fre info on the web. Nevertheless, there are several good OpenGL books, if you have the money. Some good (and cheap) ones are:

  1. OpenGL : A Primer (2nd Edition) (Paperback) by Edward Angel.
  2. OpenGL Super Bible by Wright

My Notes on Various Graphics Topics

I've prepared web notes on some topics that I think I describe better than the text. They'll be linked from the appropriate lecture.

Assorted online material

There is a lot of good, free, online material about OpenGL and graphics in general. I'll mention some of it; Google can find more.

Class-Only Online Material

Material that for copyright reasons is restricted to the class is here. Log in with user name 4750. I will announce the password in class.

Computer Systems Used

OpenGL and Qt are basically platform-independent. I use linux, and can help you with problems in that. You may use any system you wish that works. The TA may be able to help you with Windows problems. As an RPI student, you should be competent in more than one platform.

Times & Places

Lectures

Tues & Fri, 2-3:20pm, in Sage 5101.

Attendance is not taken. However, I may base an exam question on a student question in class. Also, students may be expected to present some topics in class.

Labs

Wed 4-5:20 in JEC4107.

There will be no scheduled labs at first. I may use the time to make up missed classes. This will also be an easy opportunity to meet the TA.

Course calendar

http://www.google.com/calendar/embed?src=ir5r3mej2tpnen9blvo50uhmfc%40group.calendar.google.com&ctz=America/New_York

I will update this as the semester progresses.

Grades

Components

Midterm Exam

There will be a midterm exam in class, on Tues Oct 7, 2008 or on Wed Oct 8. You may bring in any printed material, but no computers. No collaboration or communication (except with the staff) is allowed.

The exam may contain some recycled homework questions.

This year's topics will be slightly different, but will be largely the same. OTOH, since there are a finite number of electrons in the universe and they say that recycling is good, I'll recycle many of these questions.

  1. Midterm F2007
  2. Fall 2006 midterm
  3. Spring 2005 midterm
  4. Fall 2005 midterm
  5. Fall 2005 sample questions

I'll discuss answers in the review, or you may figure out answers on your own.

As this chart shows, there is no correlation between the time taken to write the exam and the resulting grade.

Homeworks

There will be a homework approximately every week. You may do it in teams of 2.

Term Project

  1. For the latter part of the course, most of your homework time will be spent on a term project.
  2. You may do it in teams of up to 3 people. A team of 3 people would be expected to do twice as much work as 1 person.
  3. You may combine this with work for another course, provided that both courses know about this and agree. I always agree.
  4. You may build on existing work, either your own or others'. You have to say what's new, and have the right to use the other work. E.g., using any GPLed code or any code on my website is automatically allowable.
  5. You will implement, demonstrate, and document something vaguely related to Computer Graphics.
  6. You will give a 5 minute fast forward talk or video in class.
  7. You may demo it to the TA in one of the last few labs. A good demo will help; a bad demo hurt.

Schedule (also on google calendar)

  1. Oct 24: title, team members, 100 word summary.
  2. Nov 7: brief progress report.
  3. Nov 21: brief progress report.
  4. Dec 2 or 3: 5 minute talk in class. There will be a signup sheet; sign up early to get your first choice.
  5. Dec 5: final project report including code, video, documentation.

Deliverables

  1. An implementation showing dynamic interactive or 3D graphics.
  2. An optional video showing it running. However, if you don't do this, then everything else must be really good.
  3. An implementation manual showing major design decisions.
  4. A 5 minute talk in class.

Ideas

Anything vaguely related to Computer Graphics is ok.

  1. A tutorial program to demo some idea in this course, such as quaternions, which I might use in future years.
  2. A 3D game.
  3. A psychophysics experiment to test how well users can match colors.
  4. A physical simulation of 3 body orbits.
  5. A 3D fractal or julia set generator.
  6. An L-systems generator for random plants (as in botany).
  7. Get an idea from Pittsburgh's CS 1566: Introduction to Computer Graphics Class Project Repository

Final Exam

There will be a final exam on a date set by the Registrar. You may bring in any printed material, but no computers. You may not share the material with each other during the exam. No collaboration or communication (except with the staff) is allowed. The final exam will contain material from the whole course, but more from the last half.

  1. Fall 2007
  2. Fall 2006
  3. Fall 2005
  4. Fall 2005 sample questions
  5. Spring 2005

Weights and Cutoffs

ComponentWeight
All the homeworks together25%
Midterm exam25%
Term project25%
Final exam25%

Even if the homeworks be out of different numbers of points, they will be normalized so that each homework has the same weight.

Course percentageLetter grade
>=90.0%A
>=75.0%B
>=60.0%C
>=50.0%D
>=0%F

Missing or Late Work

We will drop the lowest homework grade. That will handle excused absences, unexcused absences, dying relatives, illnesses, team trips, and other problems. Unless otherwise stated, the homeworks will be due on paper in the lecture. Late homeworks will not be accepted.

If you miss the midterm because of an excused absence, we will use your final exam grade also as your midterm grade.

If you miss the final exam because of an excused absence, you may demonstrate your knowledge of the 2nd half of the course at an individual oral makeup exam.

If your term project is late, you will be offered an incomplete and the project will be graded in Jan 2009.

Grade Distribution & Verification

When we return a graded homework or exam to you, please report any errors within one week.

We'll email you your grades throughout the semester.

When we report grades to you, please report any missing grades within one week.

It is not allowed to wait until the end of the semester, and then go back 4 months to try to find extra points. It is especially not allowed to wait until the end of the following semester, and then to try this. (Yes, someone tried this last year.)

Honesty Policy

You may collaborate on homeworks, but each team of 1 or 2 people must write up the solution separately using their own words. We willingly give hints to anyone who asks.

The penalty for two teams handing in identical work is a zero for both.

You may get help from anyone for the term project. You may build on a previous project, either your own or someone else's. However you must describe and acknowledge any other work you use, and have the other person's permission, which may be implicit. E.g., my web site gives a blanket permission to other people to use it for nonprofit research or teaching. You must add something creative to the previous work.

The penalty for plagiarism is a zero grade.

You must not communicate with other people or machines or use electronic aids like computers and PDAs during exams. That includes not exchanging books and notes during the exam. You may use as many paper books and notes as you can carry, wheel, or drag into the room.

The penalty is a zero grade on the exam.

Also, all cheating will be reported to the Dean of Students Office.

The penalty for handing in the answer for a slightly different question that was on last year's homework or exam, because you copied but didn't even see that the question was different this time, is a zero and our scornful laughter.

Ditto for writing an exam answer that was more appropriate for the version of the exam handed out to other people in the room.

Computer Graphics at RPI

Research, courses, profs, grad students here

Graphics courses at some other colleges

Where Who What
MIT Durand and Cutler 6.837 Computer Graphics, Fall 2003
Stanford Caspi CS 148 Introduction to Graphics Summer 2000
Dartmouth Pellacini Computer Graphics CS52 - Fall 2006

Course survey

Near the end of the semester you will be asked to fill out an online survey. If you feel that you got value for your money, I'd appreciate that you give the course a high score. Thanks.