Lectures: SL-411, MT-RF, 3:00pm - 3:50pm
Teaching Assistants: William Disanto (wrdisanto@WPI.EDU)
Student Assistant: Jackson Fields (jfields@wpi.edu)
Instructor: Prof. Emmanuel Agu, FL-139, 508-831-5568, emmanuel@cs.wpi.edu
Office Hours: Tuesdays 4 - 5PM; Others by appointmentRequired Text: Interactive Computer Graphics (6th edition), Addison Wesley by Angel and Shreiner
Supplemental texts (Optional):
- Computer Graphics using OpenGL (Third edition) by F.S. Hill Jr. and S Kelley
- (1) OpenGL(R) Distilled by Paul Martz,
- (2) OpenGL(R) SuperBible: Comprehensive Tutorial and Reference (4th Edition) by Richard S. Wright, Benjamin Lipchak and Nicholas Haemel
- (3) OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 3.0 and 3.1 (7th Edition) by Dave Shreiner and The Khronos OpenGL ARB Working Group
Facilities: You should do your assignments in C/C++ but may choose to develop your code on any Windows Machine with hardware that supports OpenGL shaders. Details will be given in class on how to find out if a given machine is suitable for this class. Note that compiled graphics code tends to be large and may consume more than one megabyte of disk space. Clean up your code and make sure it works before submission Points will be deducted if you do not check that your code works before submission.
Class Websites: The class website is at http://web.cs.wpi.edu/~emmanuel/courses/cs4731/B11/. 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.
Grade Policy: 50% exams (2 exams), 50% assignments (4 projects)
Late Assignment Credit: Late programming assignments will be penalized 15 percent per day (per 24 hours). Assignments later than 4 days late will not be accepted.
Notes:
- Reading is mandatory, working ahead is encouraged.
- Exams shall be based on lectures, readings and a bit of project knowledge, 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).
- Both your executable and source code must be turned in. Your documentation MUST include the structure of your project, what each file contains and instructions for compiling and running the program. Typically, a well-organized README ASCII 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!! Your README file should be ASCII text so that the TAs can open them on the same machine they will do the grading. Do NOT send in documentation in Microsoft word or Apple MAC files.
WPI CCC Computer Labs
Your assignments will be programmed in OpenGL. Machines that have adequate graphics cards run OpenGL. This class requires access to a machine that supports OpenGL 3.1 or higher. The following WPI CCC Machines have adequate hardware for this class.
- Gordon's Library
- Salisbury Labs 123
- Stratton Hall 003 (Math Lab)
- Washburn 226
- Higgins Lab 230
- Kaven Hall 203
Schedule (Tentative)
Week 1 (Oct 24) Topics: overview, graphics intro, basic HW/SW, OpenGL/GLUT & GLSL intro Homework 1 Due Thursday, November 10, 2011, 11:59PM Week 2 (Oct 31) Topics: GLSL shader introduction, 2D systems, window-to-viewport mapping, interaction & menus, fractals Week 3 (Nov 7) Topics: Linear Algebra for Graphics, Transformations, Rendering 3D Models Homework 2 Due Thursday, November 17, 2011, 11:59PM Week 4 (Nov 14) Topics: Transformations, Rotations and Matrix Concatenation, Viewing, Camera Controls Midterm Exam: Tue, Nov 22, in-class Week 5 (Nov 21) Topics: Projection, Orthographic Projection, Perspective Projection, Homework 3 Due Thursday, December 1, 2011, 11:59PM Week 6 (Nov 28) Topics: Lighting & shading, finding normals, Per-pixel lighting, BRDFs, Cook-Torrance BRDF Week 7 (Dec 5) Topics: Hierachical modeling, Shadows, Texturing (including bump mapping), Hidden Surface Removal Homework 4 Due Thursday, December 8, 2011, 11:59PM Week 8 (Dec 12) Topics: Clipping, Rasterization (line drawing, polygon filling), antialiasing, Curves Final Exam: Thur, Dec 15, in-class
Class Slides
Old Exams
- Lecture 1 [ Introduction to Graphics ]
- Lecture 2 [ Introduction to OpenGL/GLUT ]
- Lecture 3 [ Introduction to OpenGL/GLUT (part 2)]
- Lecture 4 [ Shader Setup & 2D Graphics Systems ]
- Lecture 5 [ Tiling, Maintaining Aspect Ratio and Fractals ]
- Lecture 6 [ Linear Algebra for Graphics: (Points, Scalars, Vectors) ]
- Lecture 7 [ Building 3D Models (Part 1) ]
- Lecture 8 [ Building 3D Models (Part 2) ]
- Lecture 9 [ Introduction to Transformations ]
- Lecture 10 [ Rotations and Matrix Concatenation ]
- Lecture 11 [ Implementing Transformations ]
- Lecture 12 [ Viewing & Camera Controls]
- Lecture 13 [ Projection (Part I) ]
- Lecture 14 [ Projection (Part II) ]
- Midterm Review slides [ Midterm Review ]
- Lecture 15 [ Lighting, Shading and Materials (Part 1) ]
- Lecture 16 [ Lighting, Shading and Materials (Part 2) ]
- Lecture 17 [ Hierarchical 3D Modeling ]
- Lecture 18 [ Lighting, Shading and Materials (Part 3) ]
- Lecture 19 [ Shadows ]
- Lecture 20 [ Texturing ]
- Lecture 21 [ Clipping: Cohen-Sutherland Clipping ]
- Lecture 22 [ 3D Clipping ]
- Lecture 23 [ Viewport Transformation, Hidden Surface Removal & Rasterization]
- Lecture 24 [ Rasterization: Line Drawing ]
- Lecture 25 [ Polygon Filling and Antialiasing ]
- Lecture 26 [ Curves ]
- Sample Midterm Exam [ C Term 2011 Midterm Exam ]
- Sample Final Exam [ C Term 2011 Final Exam ]
Schedule for office hours
Note: All TA (Will Disanto) and SA (Jackson Fields) office hours will be held in Salisbury Labs Room (SL) 123. SL 123 is a public CCC Computer Lab. If there are conflicts with other scheduled activities, the TA/SA may move his office hour location. Announcements will be made to this effect as necessary.
Monday Tuesday Wednesday Thursday Friday 10:00 - 11AM Will 11AM - 12PM Will 12PM - 1PM Will 1:00 - 2PM Will Will Will 2:00 - 3:00PM Will Jackson Will 3:00 - 4PM Class Class Jackson Class Class 4:00 - 5:00PM Jackson Jackson 5:00 - 6:00PM 6:00 - 7:00PM 7:00 - 8:00PM 8:00 - 9:00PM Jackson 9:00 - 10:00PM Jackson Will Jackson 10:00 - 11:00PM Jackson Will Jackson 11:00PM - 12:00AM Jackson Main Web Resources
- CS 4731 Frequently Asked Questions (FAQ)
- 2004 Spaceship Gallery
- Gallery from 2001 class
- OpenGL Page by Nate Robbins
- 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: Getting started with OpenGL
- OpenGL.org Website
- The OpenGL Extension Wrangler Library
- Freeglut