EECS 487: Interactive Computer Graphics
Course Information
Winter 2007
Topics
The course will address the following topics:
- Mathematics for Computer Graphics
Points, vectors, matrices, linear algebra, triangles, barycentric
coordinates, interpolation, 2D and 3D rigid transformations, and
3D viewing and perspective.
- Rendering
Scan line and ray tracing
techniques, antialiasing, illumination
and reflection models for surfaces, shadowing, texture mapping,
radiosity, GPU programming.
- Geometric Modeling
Meshes, modeling hierarchies, splines,
implicit curves and surfaces, procedural models, and user interfaces.
- Animation
Principles of animation.
Keyframe animation.
Grading
Each student's final grade will be based on 2 exams, 5 programming
projects, 3 - 4 homework assignments, a "special assignment," and
"class contribution," as follows:
|
Points |
Exam 1
|
15 |
Exam 2
|
15 |
Homework |
15 |
5 Projects
|
50 |
Special assignment
|
3 |
Class
contribution
|
3
|
Total
|
101
|
The final letter grade is determined from the total number of points,
as follows:
Total points
|
Letter grade
|
97.5 - 101
|
A+ |
92.5 - 97.4
|
A |
90 - 92.4
|
A- |
87.5 - 89.9
|
B+ |
82.5 - 87.4
|
B |
80 - 82.4
|
B-
|
77.5 - 79.9
|
C+
|
72.5 - 77.4
|
C
|
70 - 72.4
|
C-
|
Assignments
See the course
syllabus for due dates.
Programming projects:
There will be five programming projects, each worth 10 points.
Project 1: Scan converting
lines and triangles. Load a 3D model and render it in wireframe, or
with filled triangles, where colors are interpolated using barycentric
coordinates.
Project 2: Shading. Implement
the basic lighting calculations offered by 3D APIs like OpenGL
(combining ambient, diffuse, and specular lighting effects). Implement
several shaders using GLSL.
Project 3: Sketch modeler.
Implement a simple sketch modeler based on interpreting
2D input and instantiating corresponding 3D shape primitives.
Project 4: Animation. Create
animations by modeling a scene, animating one or more
articulated figures to move through the scene, and animating a camera
to render
frames of the animation.
Project 5: Ray tracer.
Implement a ray tracer, including effects such as soft shadows,
reflections, and refraction through transparent surfaces.
Late policy: We will not
accept late submissions. This is a firm policy. If you wait too long to
start work, you risk getting a 0 on the project. Start early, and plan
to have it finished a few days ahead of the due date.
Early policy: There will be
a
bonus for early submissions of the programming projects: 4 points (on a
hundred point scale) for submitting 2 days early, and 2 points for
submitting 1 day early.
Written Homework
There will be 3 or 4 written homework assignments, generally taken from
the text book.
Special Assignment:
The "special assignment" will be either a presentation or a written
paper. Some students will deliver 10-minute presentations in class
using Powerpoint, live demos, web pages, slide shows, or anything else
that helps make the desired point. The topic is up to the
student, but
should be related to computer graphics. One possibility is to research
a technique that isn't already being covered in lecture, and do a
presentation about it. Presentations should be fun and informative.
Being able to do good presentations is a useful skill in many lines of
work, which is one reason for this assignment. Being able to write well
is another useful skill, and some students may prefer to report their
ideas in written form. A written paper (or web page) is thus the second
option for doing the "special assignment." With images, written papers
can range up
to 5 pages (with images). All papers will be posted on the class web
space so that
students can read each others' work. In both cases, your intended
audience is your fellow students.
Class Contribution:
This refers to contributions made to class, which can take a variety of
forms. E.g., speaking up in class, answering students' questions on the
phorum,
creating datasets (3D models, image sequences, etc.) that others in the
class can use, fixing problems in the support code and checking the
revised code into the CVS repository shared by the class (with
permission)... Or just
generally contributing to the well-being of the class. Bringing
bagels and cream cheese to class could almost work, if it didn't
involve spending money.
Policies
CAEN Account: You are required
to have a CAEN
account to take EECS 487. Among other reasons, you will need it to
access some of the course materials. (Most students will already have
one, because Engineering students and LS&A computer science majors
all have CAEN accounts.) We are providing 100MB of disk space on CAEN
servers for each EECS 487 student to use for course work.
Honor code and policy on cooperation: All
students
taking this class are expected to abide by the Honor
Code of the College of Engineering. This means that all
assignments,
programming
projects, and exams are covered by the Honor Code. In general, all work
is to be that of each individual. Students
must not share code or designs related directly to the content
of a project,
but can discuss questions about the assignment, the support code,
general coding
techniques, and the general
principles
of graphics algorithms. (The class phorum is a
good place to discuss such questions.) Violation of this policy is
grounds to initiate an action
with the Dean's office that may come before the College of
Engineering's
Honor Council. Please do not hesitate to contact me if you have
any questions about this policy.
Getting
Help
A good way to get individualized help is to go to office hours
(listed on the main course web page). In
addition, you can get help online via the EECS 487 phorum.
This is a great way to ask questions and get answers. (You can also
answer other students'
questions -- and get contribution points for doing it!) Lee and Manoj
prefer this to email, because it helps
us avoid
answering the same questions repeatedly. We ask that you do not post
your project-specific code on the phorum. If you have a code-specific
question that
requires we look at your code, come to office hours.
EECS 487 home
Last updated: January 6, 2007