Lectures: Goddard Hall (GH) 227, Tuesdays & Fridays, 3.00 - 4.50PM
Student Assistants: Davis Ezra (firstname.lastname@example.org) Alex Gaines (email@example.com)
Instructor: Prof. Emmanuel Agu, FL-139, 508-831-5568, firstname.lastname@example.org
Office Hours: Thursdays 4-5pm. Other times by appointment.
Required 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):
- OpenGL 4 Shading Language Cookbook (second edition) 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
- Computer Graphics using OpenGL (Third edition) by F.S. Hill Jr. and S Kelley
- Foundations of 3D Computer Graphics Steven Gortler
- Graphics Shaders (second edition) Bailey and Cunningham
Facilities: You should do your assignments in C/C++ but may choose to develop your code on Unix, Mac 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 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/cs4731/B16/. 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, FreeGLUT and GLEW are all installed on the machines in the WPI Zoolab.
Grade Policy: 50% exams (2 exams), 50% assignments (4 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.
- 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). 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 543 grad 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 in which the file was changed. Your README file may be in ASCII text, Microsoft Word or PDF.
Week 1 (Oct 25) Topics: Overview, graphics intro, basic HW/SW, OpenGL/GLUT & GLSL intro Homework 0 Not to be submitted Week 2 (Nov 1) Topics: GLSL shader introduction, 2D systems, window-to-viewport mapping, interaction & menus, fractals Homework 1 Due Tuesday, Nov 8, 11.59PM Week 3 (Nov 8) Topics: Linear Algebra for Graphics, Rendering 3D Models, Transformations Midterm Exam: Friday, November 11 (tentative) Week 4 (Nov 15) Topics: Transformations, Rotations and Matrix Concatenation, Hierachical modeling, Viewing, Camera Controls Homework 2 Due Tuesday, Nov 22, 11.59PM Week 5 (Nov 22) Topics: Projection, Orthographic Projection, Perspective Projection, Homework 3 Due Friday, Dec 2, 11.59PM Week 6 (Nov 29) Topics: Lighting & shading, finding normals, Per-pixel lighting, BRDFs, Cook-Torrance BRDF Week 7 (Dec 6) Topics: Shadows, Texturing (including bump mapping), Hidden Surface Removal Homework 4 Due Friday, Dec 9, 11.59PM Week 8 (Dec 13) Topics: Clipping, Rasterization (line drawing, polygon filling), antialiasing, Curves Final Exam: Dec 16, in-class
- Lecture 1 [ Introduction to Graphics ]
- Lecture 2 [ Introduction to OpenGL/GLUT (part 1)]
- Lecture 3 [ Introduction to OpenGL/GLUT (part 2) ]
- Lecture 4 [ 2D Graphics Systems ( Drawing Polylines, tiling, & Aspect Ratio ) ]
- Lecture 5 [ Fractals ]
- Lecture 6 [ Interaction, Shader Setup and GLSL Introduction ]
- Lecture 7 [ Linear Algebra for Graphics: (Points, Scalars, Vectors) ]
- Lecture 8 [ Building 3D Models ]
- Lecture 9 [Introduction to Transformations ]
- Lecture 10 [ Rotations and Matrix Concatenation ]
- Midterm Review slides [ Midterm Review ]
- Lecture 11 [ Implementing Transformations ]
- Lecture 12 [ Hierarchical 3D Models ]
- Lecture 13 [ Viewing & Camera Control ]
- Lecture 14 [ Projection ]
- Lecture 15 [ Lighting, Shading and Materials (Part 1) ]
- Lecture 16 [ Lighting, Shading and Materials (Part 2) ]
- Lecture 17 [ Texture Mapping ]
- Lecture 18 [ Environment mapping (Reflections and Refractions ]
- Lecture 19 [ Shadows and Fog ]
- Lecture 20 [ Clipping ]
- Lecture 21 [ Viewport Transformation & Hidden Surface Removal ]
- Lecture 22 [ Rasterization: Line Drawing ]
- Lecture 23 [ Rasterization: Polygon filling and Antialiasing ]
- Lecture 24 [ Curves ]
- Final Review [ Final Review ]
Schedule for office hoursNote: All SA office hours will be held in the zoolab unless you receive instructions otherwise.
Monday Tuesday Wednesday Thursday Friday 10:00 - 11.00AM 11:00AM - 12PM 12.00PM - 1.00PM 1:00PM - 2:00PM Alex Alex 2:00 - 3:00PM Alex 3:00 - 4:00PM Class Class 4:00 - 4:50PM Class Class 5:00 - 6:00PM Davis 6:00 - 7:00PM 7:00 - 8:00PM Davis Alex Davis 8:00 - 9:00PM Davis Alex Davis 9:00 - 10:00PM
Main Web Resources
- How to install Visual Studio 2015
- How to install GLEW and GLUT
- 2004 Spaceship Gallery
- OpenGL.org: Getting started with OpenGL