Lectures: SL-411, MT-RF, 2:00pm - 2:50pm
Teaching Assistants: Hien Duong (hdduong@wpi.edu), Satya Janga (sjanga@wpi.edu)
Graduate Assistant: Xuan Lu (xlu@wpi.edu)
Instructor: Prof. Emmanuel Agu, FL-139, 508-831-5568, emmanuel@cs.wpi.edu
Office Hours: Mondays 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
- OpenGL(R) Shading Language (3rd edition) by Randy Rost and Bill Licea-Kane
- OpenGL(R) SuperBible: Comprehensive Tutorial and Reference (5th Edition) by Richard S. Wright, Benjamin Lipchak and Nicholas Haemel
- 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 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/C13/. 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 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, Microsoft Word or PDF.
Schedule (Tentative)
Week 1 (Jan 10) Topics: overview, graphics intro, basic HW/SW, OpenGL/GLUT & GLSL intro Homework 0 Not to be submitted Week 2 (Jan 14) Topics: GLSL shader introduction, 2D systems, window-to-viewport mapping, interaction & menus, fractals Week 3 (Jan 21) Topics: Linear Algebra for Graphics, Transformations, Rendering 3D Models Homework 1 Due Thursday, Jan 24 Week 4 (Jan 28) Topics: Transformations, Rotations and Matrix Concatenation, Viewing, Camera Controls Homework 2 Due Thursday, Jan 31 Week 5 (Feb 4) Topics: Projection, Orthographic Projection, Perspective Projection, Midterm Exam: Thur, Feb 7, in-class Week 6 (Feb 11) Topics: Lighting & shading, finding normals, Per-pixel lighting, BRDFs, Cook-Torrance BRDF Homework 3 Due Friday, Feb 15 Week 7 (Feb 18) Topics: Hierachical modeling, Shadows, Texturing (including bump mapping), Hidden Surface Removal Homework 4 Due Monday, Feb 25 Week 8 (Feb 25) Topics: Clipping, Rasterization (line drawing, polygon filling), antialiasing, Curves Final Exam: Fri, Mar 1, in-class
Class Slides
Old Exams
- Lecture 1 [ Introduction to Graphics ]
- Lecture 2 [ Introduction to OpenGL/GLUT (Part 1) ]
- Lecture 3 [ Introduction to OpenGL/GLUT (part 2)]
- Lecture 4 [ Shader Setup ]
- Lecture 5 [ 2D Graphics Systems: Tiling, Maintaining Aspect Ratio ]
- Lecture 6 [ Fractals ]
- Lecture 7 [ Building 3D Models (Part 1) ]
- Lecture 8 [ Building 3D Models (Part 2) & Transformations ]
- Lecture 9 [ Implementing Transformations ]
- Lecture 10 [ Rotations and Matrix Concatenation ]
- Lecture 11 [ Linear Algebra for Graphics (Points, Scalars, Vectors) ]
- Lecture 12 [ Viewing & Camera Controls]
- Lecture 13 [ Projection (Part I) ]
- Lecture 14 [ Projection (Part II): Derivation ]
- Midterm Review slides [ Midterm Review ]
- Lecture 15 [ Hierarchical 3D Modeling ]
- Lecture 16 [ Lighting, Shading and Materials (Part 1) ]
- Lecture 17 [ Lighting, Shading and Materials (Part 2) ]
- Lecture 18 [ Lighting, Shading and Materials (Part 3) ]
- Lecture 19 [ Shadows & Fog ]
- Lecture 20 [ Texturing ]
- Lecture 21 [ Clipping: Cohen-Sutherland Clipping ]
- Lecture 22 [ 3D Clipping ]
- Lecture 23 [ Viewport Transformation & Hidden Surface Removal]
- Lecture 24 [ Rasterization: Line Drawing ]
- Lecture 25 [ Rasterization: Polygon Filling and Antialiasing ]
- Final Review slides [ Final Review ]
- Sample Midterm Exam [ B Term 2011 Midterm Exam ]
- Sample Final Exam [ B Term 2011 Final Exam ]
Schedule for office hours
Note: All TA office hours will be held in the Zoolab. The zoolab is a public CCC Computer Lab. If there are conflicts with other scheduled activities, the TA may move his office hour location. Announcements will be made to this effect as necessary.
Monday Tuesday Wednesday Thursday Friday 10:00 - 11AM 11AM - 12PM 12PM - 1PM Hien Xuan Lu Satya 1:00 - 2PM Hien Xuan Lu Xuan Lu Satya 2:00 - 3:00PM Class Class Xuan Lu Class Class 3:00 - 4PM Hien Xuan Lu Xuan Lu 4:00 - 5:00PM Hien Xuan Lu Xuan Lu 5:00 - 6:00PM Hien Xuan Lu 6:00 - 7:00PM Satya Hien Xuan Lu Satya 7:00 - 8:00PM Satya Hien Satya 8:00 - 9:00PM Satya Hien Satya 9:00 - 10:00PM 10:00 - 11:00PM 11:00PM - 12:00AM Main Web Resources
- 2004 Spaceship Gallery
- Gallery from 2001 class
- OpenGL Tutors 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
- How to install FreeGLUT and GLEW
- OpenGL online Book website: installing FreeGLUT and GLEW, and using Visual Studio 10