CS4731- Term A, 2001
Computer Graphics

Lectures: FL-AUD, MTRF, 2:00 - 2:50PM

Instructor: Prof. Matthew Ward, FL-134, 831-5671, matt@cs
Office Hours: Monday: 11:00AM, Thursday: 10:00AM, Tuesday and Friday: 3:00PM, Others by appointment

Teaching Assistants: Huahui Wu: FL-314, 831-5856, flashine@cs and Abhishek Kumar: FL:A21, 831-5951, akumar@cs
TA Office Hours (in FL244): Tuesday: 10:00AM-12:00PM, Wednesday: 10:00AM-11:00AM 2:00PM-5:00PM, Thursday: 10:00AM-12:00PM and 3:00PM-5:00PM

Text: The primary text for the course is Interactive Computer Graphics, a Top-Down Approach with OpenGL, by Edward Angel (second edition). Supplemental texts will be placed on reserve in the library which may assist you in understanding some of the more difficult concepts.

Facilities: You may do your assignments on any machine that supports OpenGL (packaged with Windows '95 and beyond) or MESA, a public domain version of OpenGL for Unix and Linux. Makefiles for building MESA programs on WPI can be found in /cs/cs4731/software.

Software Utilities: You will find a simplified interface to OpenGL, called MiniGL, in the /cs/cs4731/software/demos directory on wpi. All programs for this course can be completed by extending one or more of the sample programs provided.

Grade Policy: 50% exams, 50% assignments, though low grades early in the term may be forgiven in cases where students are performing very well at the end of the course. You must obtain a passing grade for both the exam portion and project portion.

Supplemental Material: All handouts and other documents can be found in the /cs/cs4731/docs directory on wpi.

Notes:

  1. Reading is mandatory, working ahead is encouraged.
  2. Exams are based on both lectures and readings, so class attendance and reading the assigned chapters is strongly suggested.
  3. Oversleeping is NOT an acceptable excuse for missing an exam.
  4. Working on homework in pairs is OK, but as mentioned above, in order to pass the course you must pass both the assignment and exam components. Please keep the TA informed as to the person with whom you are partners, so you will not be accused of acacemic dishonesty (see below). You may only change partners once, and this can be accomplished at a no-fault divorce hearing to be held after the third assignment. Each person must have his or her own object for modeling and rendering, but the programs can be developed with your partner.
  5. Cheating (a.k.a., academic dishonesty), defined as taking credit for work you did not do or knowledge you do not possess, is strictly forbidden. First offenders will receive a zero grade for the assignment or exam in question and an academic dishonesty report will be filed with the Office of Student Affairs. Repeat offenders will receive an NR for the course and the case will be brought before the campus hearing board (see Student Handbook).
  6. All assignments should be submitted using the turnin utility, which can be found in the /cs/bin directory on CCC servers (see http://www.cs.wpi.edu/~Help/turnin.html). Files MUST include instructions on compiling and running the program and should be WELL documented. Insufficient documentation will result in loss of points (as much as 25% of the assignment). Each assignment will include a breakdown of points for the various parts of the material turned in. Please, do NOT turn in hardcopies or executables! Any questions regarding the program may be sent to either the TA or me via e-mail (cs4731_ta@cs), or you may stop by during our posted office hours.

Projects: The term project involves the modeling and rendering of a 3-D vehicle for travel in outer space (real or fictitious). An approximation would be fine - I wouldn't expect you to be able to create a detailed model of the Millenium Falcon, for instance - but it should be recognizable. You can choose a fixed configuration of components (location and orientation of engines, laser cannons, landing gear, etc.), though those of you planning on taking CS4732 might want to consider configuring the components in such a way as to facilitate bending and twisting motions.

You should keep the level of detail and complexity in your object low until you get the basic functionality down, and then use your imagination to make it as interesting as you wish. For example, a basic starship could be approximated with a number of cylinders, spheres and boxes, and later enhanced by varying sizes, shapes, and detail. Don't get too detailed, though, as the computational demands in executing your program may become quite tedious during debugging and refinement! Late assignments (turned in after the start of class on the due date) will be penalized 15 percent. Assignments will not be accepted after the start of class on the Monday following the due date.

Schedule:

Week 1 (August 30 - September 6)
   Topics: Overview, Basic HW/SW, Intro to OpenGL, Geometric Modeling
   Reading: Ch. 1 - 2, 8.1-8.5

Week 2 (September 7 - 13)
   Topics: Interaction, Vectors, Coordinate Systems
   Reading: Ch. 3.1-3.10, 4.1-4.4
    Project 1   due: September 7

Week 3 (September 14 - 20)
   Topics: Transformations and Viewing
   Reading: Ch. 4.5 - 4.11, 5.1-5.6
    Project 2   due: September 14

Week 4 (September 21 - 27)
   Topics: Projection, Scan Conversion, Light
   Reading: Ch. 5.7-5.10, 7.8-7.11, 6.1-6.5
   Midterm Exam: September 24 

Week 5 (September 28 - October 4)
   Topics: Shading, Clipping, Hidden Surface Removal
   Reading: Ch. 6.6-6.11, 7.1-7.7
    Project 3   due: October 1

Week 6 (October 5 - 11)
   Topics: Color, Ray Tracing, Texture
   Reading: Ch. 7.12, 6.10, 9.1-9.8
    Project 4   due: October 8

Week 7 (October 12 - 18)
   Topics: Curved Surfaces
   Reading: Ch. 10.1-10.8 
    Project 5   due: October 12
    Project 6   due: October 18
   Final Exam
Gallery:

Gallery

Web Resource:

OpenGL Index:

Glut API:

C++ Standard Template Lib:

Makefile

Tutorial for running GL on Windows: