| Program start date | Application deadline |
| 2018-01-17 | - |
Program Overview
CS 543 Computer Graphics, Spring Semester 2018
Course Overview
The CS 543 Computer Graphics course is offered during the Spring Semester of 2018.
Lectures
Lectures are held in Fuller Labs (FL) 320 on Wednesdays from 6:00 to 8:50 PM.
Grader/Student Assistant
The Grader/Student Assistant for the course is Xuanyu Chen. Office hours are held on Tuesdays from 5:00 to 7:00 PM and Wednesdays from 1:00 to 3:00 PM in the zoolab.
Instructor
The instructor for the course is Prof. Emmanuel Agu, located in FL-139. Office hours are held on Mondays from 4:00 to 5:00 PM, with additional hours available by appointment.
Required Text
The required text for the course is "Interactive Computer Graphics" (6th edition) by Angel and Shreiner.
Supplemental Texts
Supplemental texts for the course include:
- "Computer Graphics using OpenGL" (Third edition) by F.S. Hill Jr. and S Kelley
- "OpenGL 4 Shading Language Cookbook" (second edition) by David Wolff
- "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
- "Foundations of 3D Computer Graphics" by Steven Gortler
- "Graphics Shaders" (second edition) by Bailey and Cunningham
- "3D Math Primer for Graphics and Game Development" by Dunn and Parberry
- "Mathematics for Computer Graphics" by John Vince
- "Real-time rendering" by Tomas Moller, Eric Haines, and Naty Hoffman
Facilities
Assignments should be completed in C/C++ on Microsoft Windows, as they will be graded on this platform. The final executable must run on the Windows machines in the WPI Zoolab, with clear instructions provided in the documentation.
Grade Policy
The grade policy for the course is as follows:
- 50% exams (3 exams)
- 50% assignments (5 projects)
Late Assignment Credit
Late programming assignments will be penalized 15 points per day (per 24 hours). Assignments later than 4 days late will not be accepted.
Notes
Important notes for the course include:
- Reading is mandatory, and working ahead is encouraged.
- Exams will be based on lectures, readings, and project knowledge, making class attendance strongly encouraged.
- Working and discussions in pairs are allowed, but each student must submit unique projects.
- Cheating is strictly forbidden, with severe penalties for academic dishonesty.
Schedule
The tentative schedule for the course is as follows:
- Week 1 (Jan 17): Overview, graphics intro, basic HW/SW, OpenGL/GLUT
- Week 2 (Jan 24): 2D Graphics Systems, Fractals, Interaction, Shader Setup, and GLSL Introduction
- Week 3 (Jan 31): Linear Algebra for Graphics, Building 3D Models, Introduction to Transformations
- Week 4 (Feb 7): Rotations and Matrix Concatenation, Implementing Transformations, Hierarchical 3D Models
- Week 5 (Feb 14): Viewing & Camera Control, Midterm exam 1
- Week 6 (Feb 21): Projection, Lighting, Shading, and Materials
- Week 7 (Feb 28): Texture mapping, environment mapping
- Week 8 (Mar 14): Normal mapping, High Dynamic Range Lighting, Tone Mapping, Bloom Effect
- Week 9 (Mar 21): Shadow and Fog, shadow maps and shadow volumes, Clipping
- Week 10 (Mar 28): Noise rendering, viewport transformation, Hidden Surface Removal, Midterm exam 2
- Week 11 (Apr 4): Rasterization: Line Drawing, Polygon filling, and Antialiasing
- Week 12 (Apr 11): Curves and tesselation, geometry shaders
- Week 13 (Apr 18): Image manipulation
- Week 14 (Apr 25): Ray tracing and physically-based Real-time rendering, Final Exam
Class Slides
Class slides are available for the following topics:
- Introduction to Graphics
- Introduction to OpenGL/GLUT
- 2D Graphics Systems
- Fractals
- Interaction, Shader Setup, and GLSL Introduction
- Linear Algebra for Graphics
- Building 3D Models
- Introduction to Transformations
- Rotations and Matrix Concatenation
- Implementing Transformations
- Hierarchical 3D Models
- Viewing & Camera Control
- Introduction to Projection
- Derivation of Ortographic Transformation
- Derivation of Perspective Transformation
- Intro to lighting, Shading, and Materials
- Per-Vertex lighting, Shading, and Per-Fragment lighting
- Physically-Based Lighting Models
- Texture Mapping
- Environment mapping
- Sphere Maps, Viewport Transformation, and Hidden Surface Removal
- Shadows and Shadow Maps
- Soft Shadows & Fog
- Normal Maps, Parametrization, Tone Mapping
- Image Manipulation
- 2D Clipping
- 3D Clipping
- Rasterization: Line Drawing
- Rasterization: Polygon filling and Antialiasing
- Curves, Tesselation/Geometry Shaders, and Level of Detail
- Ray Tracing (Part 1)
