Syllabus
Place
-
Time: 9:30-10:45am, Tu/Th, Fall 1998
-
Room: Gates B01
Virtual Places
Instructor
Pat Hanrahan
hanrahan@cs.stanford.edu
Rm 370 Gates Computer Science Building
(650) 723-8530
Office hours: 7:00-9:00pm Mon (Sweet Hall), 11-12am Thu (Gates)
Teaching assistants
Frank
Hickman
hickman@stanford.edu
Rm. 193A Gates Computer Science Building
(650) 723-6059
Office Hours: 8:00-10:00pm Tue (Sweet Hall), 3:00-4:00pm Wed (Gates 193A)
Gregory
Humphreys
humper@cs.stanford.edu
Rm. 381 Gates Computer Science Building
(650) 723-0618
Office Hours: 4:00-5:00pm Tue (Gates 300), 6:00-8:00 Tue (Sweet Hall)
Kekoa Proudfoot
kekoa@graphics.stanford.edu
Rm. 372 Gates Computer Science Building
(650) 725-3708
Office Hours: 7:00-9:00pm Wed (Sweet Hall), 3:00-4:00pm Thu (Gates 372)
Matt Pharr
mmp@graphics.stanford.edu
Rm. 372 Gates Computer Science Building
(650) 725-3708
Office Hours: 4:00-5:00pm Mon (Gates 372), 6:00-8:00pm Wed (Sweet Hall)
Secretary
Ada Glucksman
ada@graphics.stanford.edu
Room 368 Gates Computer Science Building
(next to Pat Hanrahan's office)
(650) 725-3724
Office hours: Mon-Fri, 9:00 to 4:30
Description
This course provides a broad overview of the basic concepts of computer
graphics and imaging. Both 2d raster graphics and 3d graphics will be covered.
Topics from imaging include color theory, tone reproduction, quantization,
dithering and halftoning, basic signal processing and sampling, aliasing
and antialiasing algorithms, and scan conversion of lines and polygons.
Topics from 3d graphics include projective geometry, representations of
curves and surfaces, animation, modeling and viewing transformations, hidden
surface removal algorithms, reflection models and illumination algorithms.
In addition the general features of graphics hardware and system architectures
will be covered.
Prerequisites
CS 248 assumes no prior knowledge of computer graphics. However, most students
taking CS 248 have had some exposure to graphical user interfaces and interaction
techniques, usually through CS 108. We assume solid programming skills
in C (or C++) on a UNIX workstation and a knowledge of basic computer algorithms
and data structures. We also assume a basic knowledge of calculus and linear
algebra (one college-level course of each), and basic familiarity with
2D and 3D geometry. Exposure to digital signal processing or Fourier analysis
is useful, but it is not required.
Registration
Please fill out the registration form located on the course home page.
This form complements,
but does not supercede, class registration via AXESS.
The contact information that you provide on this form (email and home page)
will be used to construct a class mailing list for
class announcements. Your name and contact information will also be placed
on a student page linked to the CS248 Home Page.
The other requested information will be used to help gauge
the background of the class.
Textbooks
The following textbook is required for the course:
J. Foley, A. van Dam, S. Feiner, and J. Hughes,
Computer Graphics
in C: Principles and Practice.
2nd edition in C, Addison-Wesley, 1995.
Errata
And the following books are optional:
J. Neider, T. Davis, M. Woo,
The
OpenGL Programming Guide, Version 1.1, 2nd Edition
Addison-Wesley, 1997
Errata
J. Hartmen, J. Werneke,
The
VRML 2.0 Handbook,
Addison-Wesley, 1996.
Copies of these books are available in the textbook and general computer
science sections of the campus bookstore. These books will be on reserve
in the Math and CS Library.
Additional material not covered in the texts will also be made available.
This consists of several papers and notes for several of the lectures.
Slides of the lectures will also be made available via the CS 248 Home
Page. These slides are intended to be viewed along with the lecture,
and are not meant to be self-explanatory study aids.
Printed copies of handouts and slides will be available in the CS248
file cabinet located in the copy room (rm 372) in Gates Wing 3B. If
the handout you want is not in the bin, see the course secretary.
Assignments
In addition to regularly scheduled readings, the workload for this course
consists of four programming assignments and two exams. The evening examinations
will be on campus; SITN students must come to campus for these exams.
The TAs will hold review sessions for the midterm and final exams,
and these will be broadcast on SITN.
The tentative list of programming assignments is:
-
Impressionistic Paint Program - This assignment involves writing
a paint program that simulates brush strokes of various types. This program
will allow the user to convert a standard image into one that looks like
a painting.
-
Video Special Effects System - This assignment will be done in a
group. Each member will be responsible for programming a special effect
and integrating it into an effects system that we will provide. You will
use your effects system to produce a simple video special effects sequence.
-
Behaving VRML Character - This program involves creating a movable
3d action figure using VRML. That computer character will then be inserted
into a multi-user VRML world along with the characters created by the entire
class.
-
Shading and Texturing System - The goal of this assignment will
be to write shading functions that simulate natural materials such as plastic,
wood, granite, and marble.
Each assignment will require you to produce a working program,
a commented on-line copy
of your source code, and a brief (1-2 pages) description of the system.
Assignments are due by 5:00pm on the day indicated. All submissions will
be done on-line; We will describe the submission process in a later handout.
Grading
Evaluation criteria: Each of the four programming assignments will
count as 15% of your grade, for a total of 60%. The midterm and final exams
will each account for 20% of your grade. Grading criteria on the assignments
will vary: typical criteria are correctness (as judged by the test cases,
images produced, or running the program), and efficiency and programming
style. Several assignments will have the opportunity for extra credit.
Collaboration: Each assignment must be done individually, unless
stated otherwise in the assignment.
Late assignments: Since there are many topics covered in this
course, it is important not to fall behind. Thus, all assignments should
be completed on time. However, we realize that there are often unforeseen
circumstances that make it difficult to turn in all work on time. Therefore,
you will be allowed four weekdays of grace during the quarter, an average
of one day per assignment. Once your four days are used, late assignments
will be penalized 10% per weekday. No assignments will be graded if they
are more than 1 week late, Additional late days will not be given except
in exceptional circumstances.
SGI Laboratory
Hardware: To do the assignments you will have access to the Stanford
Graphics Laboratory located in the basement of
Sweet Hall.
Room 029 contains
15 Silicon Graphics Indigo XZs (100Mhz R4000 processor, 60K polygons/sec,
24-bit frame buffer, and CD-quality digital stereo audio)
named firebird1 through firebird15,
and Room 026 contains 15 Silicon Graphics Octanes
(175Mhz R10000 processor,
500K polygons/sec, 24-bit frame buffer,
and CD-quality digital stereo audio)
named raptor1 through raptor15,
Students in CS 248 have non-exclusive priority
access to this laboratory.
All students with leland accounts automatically have accounts
on these machines. Home directories on these machines are shared with other
Stanford Computing Clusters using AFS. If you do not have a leland
account, follow these instructions.
Software: To help focus your attention on the key ideas in each
assignment, we will provide support libraries and datasets for each assignment.
These tools and datasets will be installed on the machines in Sweet Hall,
under the directory /usr/class/cs248.
Using other platforms: If you prefer working in your dorm room
or workplace, and have access to a machine there, you are welcome to do
the assignments on your own machines. However, your code must still
use OpenGL, and in the end it is your responsibility to insure that it
is copied and tested on the SGI machines in Sweet Hall. To help those working
remotely, we will make available source for the support libraries that
are used for each assignment. You are free to copy that source and port
it to your environment, if you wish. However, we make no guarantees concerning
the portability of this software. Please, if you improve the portability
of the support code, return the source to us so that we may incorporate
your changes into the future versions of the software.
Extraordinary improvements
to the support libraries will also be rewarded with special credit.
CS248: Introduction to Computer Graphics, Pat Hanrahan, Fall 98