Lectures: FL-320, MTRF, 3pm - 3.50am
Teaching Assistants: Jia Wang (wangjia@cs) and Dazhi Zhang (jasonzhang@wpi.edu)
Student Assistant: Thomas Liu (SA) (kangchao@wpi)
Instructor: Prof. Emmanuel Agu, FL-139, 508-831-5568, emmanuel@cs.wpi.edu
Office Hours: Fridays 1.30 - 2.00PM, Mondays: 4PM - 5PM; Others by appointmentRequired Text: Computer Graphics using OpenGL (Third edition) by F.S. Hill Jr. and S Kelley, Prentice-Hall
Supplemental texts (Optional):
- (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 your codes works in any other environment (e.g. Mac or Windows) but you do not check that your code works on ccc.wpi.edu.
Class Websites: The class website is at http://web.cs.wpi.edu/~emmanuel/courses/cs4731/C11/. 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. For project 3, you will be provided a simplified interface to OpenGL, called MiniGL. You will get miniGL software later in the course.
Grade Policy: 50% exams (2 exams), 50% assignments (4 projects)
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).
- 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.
Projects: There will be four projects (1 project in 2D and interaction, 2 projects in 3D, and 1 project programming shaders). You will model your scene using basic shapes. An approximation would be fine - I would not expect you to create a state-of-the-art scene - but it should be recognizable. You can choose a fixed configuration of components though those of you planning to carry out research or further projects in graphics might want to attempt some greater level of detail. You should keep the level of detail and complexity in your scene low until you get the basic functionality down, and then use your imagination to make it as interesting as you wish.
Late assignments will be penalized 15 percent per day. Assignments will NOT be accepted once it is late by 4 days or more.
Schedule:
Week 1 (Jan 13 - 14) Topics: overview, graphics intro, basic HW/SW, OpenGL/GLUT intro, Reading: Ch 1 - 2, 3.1 - 3.3 Project 0 Not to be submitted Week 2 (Jan 17 - 21) Topics: points, scalars, vectors, 2D systems, window-to-viewport mapping, clipping, Fractals, Reading: Appendix 4, 4.1-4.4 Project 1 Due: Thursday, January 27, 11.59PM Week 3 (Jan 24 - 28) Topics: 3D Transformations, 3D modeling, and coordinate systems Reading: Ch 5, 6.1, 6.2 Project 2 Due: Friday, February 4, 11.59PM Week 4 (Jan 31 - Feb 4) Topics: The synthetic camera, viewing and projection Reading: ch 7 Week 5 (Feb 7 - 11) Topics: Illumination and shading Reading: 8.1-8.3 Midterm Exam: Thurs Feb 10, 2011 (Tentative) Week 6 (Feb 14 - 18) Topics: Texturing, Hidden Surface Removal Reading: ch 8.4 - 8.5 Project 3 Due: Thursday, February 17, 11.59PM Week 7 (Feb 21 - 25) Topics: Introduction to shaders, Raster graphics Reading: Section 8.7, Ch 9 Project 4 Due: Thursday, Feb 24, 11.59PM Week 8 (Feb 28 - Mar 4) Topics: curves, Advances in graphics Reading: ch 10 Final Exam: Mar 4, 2011 (Tentative)Class Slides
Old Exams
- Lecture 1 [ Introduction to Graphics ]
- Lecture 2 [ Introduction to OpenGL/GLUT Part I ]
- Lecture 3 [ Introduction to OpenGL/GLUT Part II ]
- Lecture 4 [ 2D Graphics Systems ]
- Lecture 5 [ Aspect Ratios, zooming, 2D clipping ]
- Lecture 6 [ Fractals ]
- Lecture 7 [ Points, scalars and vectors ]
- Lecture 8 [ Introduction to 3D Modeling and Transforms ]
- Lecture 9 [ Composing Affine Transforms & Modelview Matrix ]
- Lecture 10 [ Rotations and Arbitrary Transforms ]
- Lecture 11 [ 3D Modeling with Polygonal Meshes ]
- Lecture 12 [ 3D viewing and Flexible Camera Control ]
- Midterm Review slides [ Midterm Review ]
- Lecture 13 [ Projection ]
- Lecture 14 [ Perspective Projection ]
- Lecture 15 [ 3D Clipping and Viewport Transformation ]
- Lecture 16 [ Lighting and Materials ]
- Lecture 17 [ Phong Illumination and Shading ]
- Lecture 18 [ OpenGL Shading Language (Part I) ]
- Lecture 19 [ OpenGL Shading Language (Part II) ]
- Lecture 20 [ Texture mapping ]
- Lecture 21 [ Hidden Surface Removal ]
- Lecture 22 [ Raster graphics: Line drawing ]
- Lecture 23 [ Raster graphics: Drawing polygons and antialiasing ]
- Lecture 24 [ Curves ]
- Lecture 25 [ Advances in Graphics ]
- Final Review slides [ Final Review ]
- Sample Midterm Exam [ D10 Midterm Exam ]
- Sample Final Exam [D10 Final Exam ]
Schedule for office hours
Note: All TA office hours will be held in Fuller Labs room A22 except for office hours for project 4. Between 2/18 and 2/24, TA office hours (for project 4) will hold in Higgins lab room 230
Monday Tuesday Wednesday Thursday Friday 1:00 - 2PM Jason Thomas 2:00 - 3:00PM Jason Thomas 3:00 - 4:00PM Jason 4:00 - 5:00PM Thomas Jason 5:00 - 6:00PM Thomas Jason 6:00 - 7:00PM Jia Jia Jason 7:00 - 8:00PM Jia Jia Thomas Jason 8:00 - 9:00PM Jia Jia Thomas Jason 9:00 - 10:00PM Jia Thomas 10:00 - 11PM Jia Thomas 11:00 - 12AM Thomas
Main Web Resources
- 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