Lectures: FL-320, MTRF, 9am - 9.50am
Teaching Assistants: Fan Wu (wuf@wpi.edu) and Juan Li (juanli@wpi.edu)
Instructor: Prof. Emmanuel Agu, FL-139, 508-831-5568, emmanuel@cs.wpi.edu
Office Hours: Tuesdays 3 - 4PM, Thursdays: 1PM - 2PM; Others by appointmentText: Computer Graphics using OpenGL (Third edition) by F.S. Hill Jr. and S Kelley
Supplemental texts (Optional): (1) OpenGL Programming Guide (5th Edition) by Woo, Neider, Davis and Shreiner and (2) OpenGL Reference Manual (4th Edition) by ShreinerFacilities: You should 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. Very important: No matter what platform you write your code on, the final executable must run on the WPI CCC Unix machines with clear instructions on your documentation how to run it. Your submitted code will be compiled, tested and graded on the machine ccc.wpi.edu. Make sure your code runs well on that machine before submitting it. Points will be deducted if you do not check that your code works on that machine.
Class Websites: The class website is at http://www.cs.wpi.edu/~emmanuel/courses/cs4731/. A myWPI class website has also been set up. Please post your questions on the discussion board to avoid excessive emails and so that everyone can benefit from answers given. You may send email to me if you have questions on matters that concern only you.
Software Utilities: You will be provided a simplified interface to OpenGL, called MiniGL. Project 4 for this course shall require using miniGL. You will get miniGL software later in the course.
Grade Policy: 50% exams (2 exams), 50% assignments (4 projects)
Notes:
- Reading is mandatory, working ahead is encouraged.
- Exams are based on both lectures and readings, so class attendance is strongly encouraged.
- Working and discussions in pairs is okay. However, each student must turn in different and unique projects.
- Cheating is strictly forbidden
- 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 F for the course and the case will be brought before the campus hearing board (see Student Handbook).
- All assignments should be submitted using the turnin facility (For more info on turnin, see http://www.cs.wpi.edu/Help/turnin.html). 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. Typically, a well-organized README text file is sufficient. 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!!
Projects: There will be four projects (1 project in 2D and interaction, 3 projects in 3D). The 3D projects involve the modeling and rendering of a castle for entry into an amateur architecture contest. You will model your castle using basic shapes. An approximation would be fine - I would not expect you 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 windows, doors, etc) though those of you planning to carry out 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 once it is late by 4 days or more.
Schedule:
Week 1 (Oct 23 - Oct 30) Topics: overview, graphics intro, basic HW/SW, OpenGL/GLUT intro, 2D systems, window-to-viewport mapping, clipping Reading: Ch 1 - 2, 3.1 - 3.3 Project 0 Not to be submitted Week 2 (Oct 31 - Nov 6) Topics: Fractals, points, scalars, vectors, 3D modeling Reading: Appendix 4, 4.1-4.4, 6.1, 6.2 Project 1 Due: Tuesday, November 6, 11.59PM Week 3 (Nov 7 - 13) Topics: 3D Transformations and coordinate systems Reading: ch 5.1 - 5.5 Project 2 Due: Thursday, November 15, 11.59PM Week 4 (Nov 14 - Nov 20) Topics: The synthetic camera, view volume and projection, illumination, shading Reading: ch 7.1 - 7.4, 8.1-8.3 Midterm Exam: Monday, November 19 Week 5 (Nov 21 - Nov 27) Topics: Texturing, Hidden Surface Removal Reading: ch 8.4 - 8.6 Project 3 Due: Tuesday, Nov 27, 2007, 11.59PM Week 6 (Nov 28 - Dec 4) Topics: Raster graphics, curves Reading: ch 9, 10 Project 4 Due: Thursday, Dec 6, 2007, 11.59PM Week 7 (Dec 5 - Dec 13) Topics: Color spaces Reading: ch 11 Final Exam: December 13Class Slides
Week 1 Slides Lecture 1 [pdf] Lecture 2 [pdf] Lecture 3 [pdf] Week 2 Slides Lecture 4 [pdf] Lecture 5 [pdf] Lecture 6 [pdf] Week 3 Slides Lecture 7 [pdf] Lecture 8 [pdf] Lecture 9 [pdf] Lecture 10 [pdf] Week 4 Slides Lecture 11 [pdf] Lecture 12 [pdf] Lecture 13 [pdf] Week 5 Slides Lecture 14 [pdf] Lecture 15 [pdf] Lecture 16 [pdf] Week 6 Slides Lecture 17 [pdf] Lecture 18 [pdf] Lecture 19 [pdf] Week 7 Slides Lecture 20 [pdf] Final Review [pdf] Schedule for office hours
Note: All TA (Fan and Juan) office hours will be held in the TA office in Fuller labs room A22.
Old Exams
Monday Tuesday Wednesday Thursday Friday 9:00 - 10:00AM Class Class Class Class 10:00 - 11:00AM 11:00AM - 12:00PM 12:00 - 12:30PM Juan Fan 12:30 - 1:00PM Juan Juan Fan 1:00 - 2:00PM Juan Juan Emmanuel 2:00 - 3:00PM Juan Juan 3:00 - 3:30PM Juan Juan 3:30 - 4:00PM 4:00 - 5:00PM 5:00 - 6:00PM 6:00 - 7:00PM Fan 7:00 - 8:00PM Fan Fan 8:00 - 9:00PM Fan Fan
Main Web Resources
Past Final Exams Finals 02 pdf Finals 03 pdf
- 2004 Spaceship Gallery
- Step-by-step Guide on Installing Getting Started on OpenGL on a PC
- Gallery from 2001 class
- OpenGL Page by Nate Robbins
- Help on How to Write a Makefile
- Tutorial for running GL on Windows:
- GLUI, a GLUT-based User Interface by Paul Rademacher at UNC allows you to add add controls such as buttons, checkboxes, spinners, etc. to OpenGL applications, (painlessly).
- OpenGL.org Website