Lectures: GH-227, Mondays
6pm - 8.50pm
Instructor:
Prof. Emmanuel Agu, FL-139, 508-831-5568, emmanuel@cs.wpi.edu
Office Hours: Monday, Tuesday, Thursday, Friday: 10:00AM - 11:00AM, Others by
appointment
Text: Computer
Graphics using OpenGL (second edition) by F.S. Hill Jr.
Supplemental texts (Optional): OpenGL Programming Guide (3rd Edition)
by Woo, Neider, Davis and Shreiner
and OpenGL Reference Manual (3rd Edition) by Shreiner
Facilities:
You may do your assignments in C/C++ but may choose to develop your code on
either Unix or Windows. Note that compiled graphics code tends to be large and
may consume more than one megabyte of disk space. Important:
No matter what platform you write your code on, the final executable must run
on the WPI CCC machines with clear instructions on your documentation how to
run it. The preferred machine for your work is ccc.wpi.edu.
Class Websites:
The class website is at http://www.cs.wpi.edu/~emmanuel/courses/cs543/. A myWPI
class website has also been set up. The discussion board should be used for
asking questions to avoid excessive emails and so that everyone can benefit
from answers given. Emails should be used for specific questions which are
unique to you.
Software Utilities:
You will be provided a simplified interface to OpenGL, called MiniGL.
All programs for this course can be completed by extending one or more of the
sample programs provided. You can get miniGL off the web in zip
format for the PC and tar
format for unix (See homework 1). The README
file may be useful in knowing how things are written and getting things going.
A has also been provided for the
UNIX environment.
Grade Policy:
50% exams (2 exams), 50% assignments
Notes:
1.
Reading is mandatory, working ahead is
encouraged.
2.
Exams are based on both lectures and readings,
so class attendance is strongly encouraged.
3.
Working and discussions in pairs is okay.
However, each student must turn in different and unique projects.
4.
Cheating is strictly forbidden
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 facility (For more info on turnin, see
http://www.cs.wpi.edu/~Help/turnin.html). , which can be found in the bin
directory in the cs4731 account on the CCC servers. Both your executable and
source code must be turned in. Files MUST include instructions on compiling and
running the program and should be WELL documented. Insufficient documentation
will result in a loss of points. Data files should include a comment line at
the start giving your name, the assignment for which it is intended, and the
most recent date in which the file was changed. 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, or you may stop by during the posted office
hours.
Projects:
There will be six projects, two projects in 2D, two in 3D and 2 in raytracing.
The 3D projects involve the modeling and rendering of a 3D castle for entry
into a national amateur architectural contest An approximation would be fine -
I wouldn't expect you to be able to create a state-of-the-art model - but it
should be recognizable. You can choose a fixed configuration of components
(location and orientation of doorways, windows, etc) though those of you planning
on doing research or further projects in graphics might want to attempt some
greater level of detail.
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 castle 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 per day. Assignments will not be accepted after the start
of class on the Friday following the due date.
In the raytracing
projects, you will write a ray tracer. We will include as much detail as
possible in the time remaining in the class.
Schedule:
Week 1 (Sept 8)
Topics: overview, graphics intro, basic HW/SW, OpenGL/GLUT intro
Reading: Ch 1 - 2
Project 1 Due: Monday, Sept 15, in-class
Week 2 (Sept 15)
Topics: 2D systems, window-to-viewport mapping, clipping,
Fractals, points, scalars, vectors
Reading: , 3.1 - 3.3, Ch 9, 4.2-4.4, appendix 2
Project 2 Due: Monday, Sept 29, in-class
Week 3 (Sept 22)
Topics: 3D Transformations and coordinate systems, 3D modeling
Reading: ch 5.2 - 5.5
Week 4 (Sept 29)
Topics: 3D modeling using polygonal meshes, the synthetic camera, 3D viewing, view volume and projection
Reading: 6.1, 6.2, ch 7.1 - 7.4, 8.1-8.3
Project 3, Due: Monday, Oct 13, in-class
Week 5 (Oct 6)
Topics: 3D clipping, illumination, shading
Reading: section 7.4, ch 8.4 - 8.6
Week 6 (Oct 13)
Topics: Texturing, Hidden Surface Removal, Shadows
Reading: ch 13, 10, 11
Week 7 (Oct 20)
Midterm Exam: Oct 20
Week 8 (Oct 27)
Topics: raster graphics (line drawing, polygon fill, etc)
Reading: ch 10
Project 4, Due: Monday, Nov 10, in-class
Week 9 (Nov 3)
Topics: Curves, Color spaces, ray tracing
Reading: 11, 12
Week 10 (Nov 10)
Topics: Ray tracing
Reading: ch 14
Project 5, Due: Mon Nov 24, in-class
Week 11 (Nov 17)
Topics: Ray tracing
Reading: ch 14
Week 12 (Nov 24)
Topics: Ray tracing
Reading: ch 14
Project 6, Due: Monday, Dec 8, in-class5
Week 13 (Dec 1)
Topics: Ray tracing
Reading: ch 14
Week 14 (Dec 8)
Final Exam: Mon, Dec 8, in-class