Lectures: FL-311, Tuesdays, 6pm - 8:50pm
Instructor: Prof. Emmanuel Agu, FL-139, 508-831-5568, email@example.com
Office Hours: Tuesdays 4 - 5PM; Others by appointment
Required Text: Interactive Computer Graphics (6th edition) 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 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 in your documentation on 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://web.cs.wpi.edu/~emmanuel/courses/cs543/f11/. 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: Your programs will be written in OpenGL. OpenGL is installed on the CCC machines.
Grade Policy: 50% exams (2 exams), 50% assignments (5 projects)
- 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).
- 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. 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.
Week 1 (Aug 30) Topics: overview, graphics intro, basic HW/SW, OpenGL/GLUT intro Project 0 Not to be submitted Week 2 (Sept 6) Topics: 2D systems, window-to-viewport mapping, GLSL shader introduction Project 1 Tuesday, Sept 20 Week 3 (Sept 13) Topics: points, scalars, vectors, 3D Transformations and coordinate systems, 3D modeling Week 4 (Sept 20) Topics: 3D modeling using polygonal meshes, the synthetic camera, 3D viewing, view volume and projection Week 5 (Sept 27) Topics: 3D clipping, illumination, shading Project 2 Thursday, Oct 13, 11.59PM Week 6 (Oct 4) Topics: Texturing, Hidden Surface Removal, Shadows Week 7 (Oct 11) Midterm Exam: Wed, Oct 19, in-class Week of Oct 18: Term break Week 8 (Nov 1) Topics: Fractals & raster graphics (line drawing, polygon fill, etc) Project 3 Tuesday, Nov 8, emailed by class time Week 9 (Nov 8) Topics: Raster graphics, ray tracing Project 4 Monday, Nov 21, emailed by 5pm Week 10 (Nov 15) Topics: Ray tracing Week 11 (Nov 22) (No class on Nov 22: Thanksgiving break) Week 12 (Nov 29) Topics: Ray tracing Project 5 Saturday, Dec 10, 2011, emailed by 11.59pm Week 13 (Dec 6) Topics: Ray tracing, Curves, Advances in graphics Week 14 (Dec 14) Final Exam: Tue, Dec 14, in-classClass Slides
- Lecture 1 (part 1) [ Introduction to Graphics ]
- Lecture 1 (part 2) [ Introduction to OpenGL/GLUT ]
- Lecture 1 (part 3) [ Introduction to GLSL (part 1)]
- Lecture 2 (part 1) [ Introduction to GLSL (part 2) ]
- Lecture 2 (part 2) [ Viewports, GLUT Interaction & Menus ]
- Lecture 2 (part 3) [ Fractals ]
- Lecture 3 (part I) [ Shader Programming ]
- Lecture 3 (part II) [ Linear Algebra for Graphics: (Points, Scalars, Vectors) ]
- Lecture 3 (part III) [ Introduction to Transformations ]
- Lecture 4 (part I) [ Building 3D Models (Part 1) ]
- Lecture 4 (part II) [ Building 3D Models (Part 2) ]
- Lecture 4 (part III) [ Introduction to Transformations (Part 2) ]
- Lecture 5 (part I) [ Rotations and Matrix Concatenation ]
- Lecture 5 (part II) [ Implementing Transformations ]
- Lecture 5 (part III) [ Viewing ]
- Lecture 6 (part I) [ Setting Camera and Camera Controls ]
- Lecture 6 (part II) [ Projection (Part I) ]
- Lecture 6 (part III) [ Projection (Part II) ]
- Midterm Review slides [ Midterm Review ]
- Lecture 7 (part I) [ Lighting, Shading and Materials (Part 1) ]
- Lecture 7 (part II) [ Lighting, Shading and Materials (Part 2) ]
- Lecture 7 (part III) [ Lighting, Shading and Materials (Part 3) ]
- Lecture 8 (part I) [ Hierarchical 3D Modeling ]
- Lecture 8 (part II) [ Texturing ]
- Lecture 8 (part III) [ Shadows ]
- Lecture 9 (part I) [ Clipping ]
- Lecture 9 (part II) [Clipping, Viewport Transformation & Hidden Surface Removal ]
- Lecture 9 (part III) [ Rasterization and Antialiasing ]
- Lecture 10 (part I) [ Rasterization and Antialiasing ]
- Lecture 10 (part II) [ Ray Tracing (part I) ]
- Lecture 11 (part I) [ Ray Tracing (parts II & III) ]
- Lecture 11 (part II) [ Ray Tracing (part IV) ]
- Lecture 12 (part I) [ Curves ]
- Lecture 12 (part II) [ Advances in Graphics ]
Main Web Resources
- Sample Final Exam [ Fall 10 Final Exam ]
- 2004 Spaceship Gallery
- Gallery from 2001 class
- OpenGL Page by Nate Robbins
- Help on How to Write a Makefile
- 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