Lectures: Stratton Hall (SH) 309, Tuesdays, 6:00 - 8:50PM
Student Assistants:
Seth D Norton (sdnorton@wpi.edu)
Linh Thai Hoang (lthoang@wpi.edu)
Instructor: Prof. Emmanuel Agu, FL-139, 508-831-5568, emmanuel@cs.wpi.edu
Office Hours: Thursdays 4:00PM - 5:00PM; Others by appointmentRequired Text: Interactive Computer Graphics (6th edition) by Angel and Shreiner (Available on Amazon.com)
IMPORTANT NOTE: We are using the 6th edition NOT the 7th edition of the text
Supplemental texts (Optional):
- Computer Graphics using OpenGL (Third edition) by F.S. Hill Jr. and S Kelley (1 copy held on reserve in library)
- OpenGL 4 Shading Language Cookbook (second edition) David Wolff (e-copy available through WPI library)
- OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3 (8th Edition) by Dave Shreiner, Graham Sellers, John M. Kessenich, Bill M. Licea-Kane (e-copy available through WPI library)
- Foundations of 3D Computer Graphics Steven Gortler (e-copy available through WPI library)
- Graphics Shaders (second edition) Bailey and Cunningham (e-copy available through WPI library)
- 3D Math Primer for Graphics and Game Development Dunn and Parberry (e-copy available through WPI library)
- Mathematics for Computer Graphics John Vince (e-copy available through WPI library)
- Real-time rendering Tomas Moller, Eric Haines and Naty Hoffman (e-copy available through WPI library)
Facilities: You should do your assignments in C/C++ on Microsoft Windows since that's the platform on which they will be graded. 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 Windows machines in the WPI Zoolab with clear instructions in your documentation on how to run it. Your submitted code will be compiled, tested and graded on the machines in the zoolab. Make sure your code runs well on those machines before submitting it. Points will be deducted if you do not check that your code works on those machines.
Class Websites: The class website is at http://web.cs.wpi.edu/~emmanuel/courses/cs543/s17/ . Message boards have been set up on InstructAssist where you can discuss the homeworks and ask questions. 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. You can log into InstructAssist here:
[ InstructAssist Log In Page ]Software Utilities: Your programs will be written in OpenGL. OpenGL, GLUT and GLEW are all installed on the machines in the WPI Zoolab.
Grade Policy: 50% exams (3 exams), 50% assignments (5 projects)
Late Assignment Credit: Late programming assignments will be penalized 15 points off per day (per 24 hours). Assignments later than 4 days late will not be accepted.
Notes:
- Reading is mandatory, working ahead is encouraged.
- Exams will 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). Using or submitting code retrieved from online repositories such as gitHub, which was previously submitted by a student in a previous iteration of this class (or CS 4731 undergraduate version) is considered cheating
- All assignments should be submitted electronically. Hard copies or submissions on disks will not be accepted. 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 when the file was changed. Your README file may be in ASCII text, Microsoft Word or PDF.
Schedule (Tentative)
Week 1 (Jan 17) Topics: Overview, graphics intro, basic HW/SW, OpenGL/GLUT Homework 0 Not to be submitted Week 2 (Jan 24) Topics: 2D Graphics Systems, Fractals, Interaction, Shader Setup and GLSL Introduction Homework 1 Due Tuesday, Feb 7, by class time Week 3 (Jan 31) Topics: Linear Algebra for Graphics, Building 3D Models, Introduction to Transformations Week 4 (Feb 7) Topics: Rotations and Matrix Concatenation, Implementing Transformations, Hierarchical 3D Models Homework 2 Due Tuesday, Feb 21, by class time Week 5 (Feb 14) Topics: Viewing & Camera Control Midterm exam 1: Feb 14, in-class Week 6 (Feb 21) Topics: Projection, Lighting, Shading and Materials (Parts 1 & 2) Week 7 (Feb 28) Topics: Texture mapping, environment mapping (Reflections and Refractions) Homework 3 Due Tuesday, Mar 14, by class time (Mar 7) Term Break, No Class Week 8 (Mar 14) Snow Day (No class) Week 9 (Mar 21) Topics: Shadow and Fog, Clipping (2D and 3D) Homework 4 Due Tuesday, Apr 4, by class time Week 10 (Mar 28) Topics: Viewport transformation, Hidden Surface Removal Midterm exam 2: Mar 28, in-class Week 11 (Apr 4) Topics: Rasterization: Line Drawing, Polygon filling and Antialiasing Week 12 (Apr 11) Topics: Curves, Image manipulation Homework 5 Due Tuesday, Apr 18, by class time Week 13 (Apr 18) Topics: TBD Week 14 (Apr 25) Topics: Ray tracing overview and Real Time Ray Tracing Week 15 (May 2) Topics: Physically-based Real-time rendering Final Exam: May 2, in-class
Class Slides
Old Exams
- Lecture 1.a [ Introduction to Graphics ]
- Lecture 1.b [ Introduction to OpenGL/GLUT (part 1)]
- Lecture 1.c [ Introduction to OpenGL/GLUT (part 2) ]
- Lecture 2.a [ 2D Graphics Systems ( Drawing Polylines, tiling, & Aspect Ratio ) ]
- Lecture 2.b [ Fractals ]
- Lecture 2.c [ Interaction, Shader Setup and GLSL Introduction ]
- Lecture 3.a [ Linear Algebra for Graphics: (Points, Scalars, Vectors) ]
- Lecture 3.b [ Building 3D Models ]
- Lecture 3.c [Introduction to Transformations ]
- Lecture 4.a [ Rotations and Matrix Concatenation ]
- Lecture 4.b [ Implementing Transformations ]
- Lecture 4.c [ Hierarchical 3D Models ]
- Lecture 5 [ Viewing & Camera Control ]
- Lecture 6.a [ Introduction to Projection ]
- Lecture 6.b [ Derivation of Ortographic Transformation ]
- Lecture 6.c [ Derivation of Perspective Transformation ]
- Lecture 7.a [ Intro to lighting, Shading and Materials + Phong Lighting Model ]
- Lecture 7.b [ Per-Vertex lighting, Shading and Per-Fragment lighting ]
- Lecture 8.a [ Physically-Based Lighting Models ]
- Lecture 8.b [ Texture Mapping ]
- Lecture 8.c [ Environment mapping (Reflections and Refractions ]
- Midterm Review slides [ Exam 2 Review ]
- Lecture 9 [ Shadows and Fog ]
- Lecture 10 (Part 1) [ Image Manipulation ]
- Lecture 10 (Part 2) [ Viewport Transformation & Hidden Surface Removal ]
- Lecture 11 (Part 1) [ Sphere mapping, Normal Maps, Parametrization ]
- Lecture 11 (Part 2) [ 2D Clipping ]
- Lecture 11 (Part 3) [ 3D Clipping ]
- Lecture 12 (Part 1) [ Rasterization: Line Drawing ]
- Lecture 12 (Part 2) [ Rasterization: Polygon filling and Antialiasing ]
- Lecture 13 (Part 1) [ Curves ]
- Lecture 13 (Part 2) [ Ray Tracing & Exam 3 Review ]
- Sample Midterm Exam [ Fall 2013 Midterm Exam ]
- Sample Final Exam [ Fall 2013 Final Exam ]
Schedule for office hours
Note: All SA office hours will be held in the zoolab unless you receive instructions otherwise.
Monday Tuesday Wednesday Thursday Friday 2:00 - 3:00PM Seth 3:00 - 4:00PM Seth Seth Seth 4:00 - 5:00PM Linh 5:00 - 6:00PM Linh Linh Linh 6:00 - 7:00PM Seth Class 7:00 - 8:00PM Seth Class 8:00 - 9:00PM Linh Class 9:00 - 10:00PM Linh Main Web Resources
- How to install Visual Studio 2015
- How to install GLEW and GLUT
- 2004 Spaceship Gallery
- OpenGL.org: Getting started with OpenGL