CS 488/688: Introduction to Computer Graphics
Winter 2020
Welcome to the home page for CS488/688, the introductory computer graphics course in the School of Computer Science at the University of Waterloo. This course focuses on 3D graphics, although it does discuss some aspects of user interface design. CS488/688 has a fairly heavy project component and should not be taken in conjunction with other heavy project courses.
Course logistics for Winter 2020
- Instructor
- Gladimir V. G. Baranoski
gvgbaran@uwaterloo.ca
Office hours: Friday, 3:30 – 4:30 PM in DC 3520 - Teaching Assistants
- Spencer Van Leeuwen
srvanlee@uwaterloo.ca
Office hours: Tuesdays from 2:00 PM – 3:00 PM, in the Undergraduate Graphics Lab, MC 3007 - Petri Varsa
pmvarsa@uwaterloo.ca
Office hours: Wednesdays from 11:00 AM – 12:00 PM, in the Undergraduate Graphics Lab, MC 3007 - Lectures
- Tuesday and Thursday, from 8:30 – 9:50 PM, MC 4063
- Lab
- MC 3007. There are no scheduled lab times. The lab is available 24 hours a day for students enrolled in CS 488/688. The code to open the lab will be provided in class.
- Tutorials
- There will be two scheduled tutorials this term on January 15th and 16th from 5:30–6:30 PM in MC 4063. The content will be the same on both days, so you can attend either session.
- Exams
- Midterm: Thursday February 13th at 8:30 AM in MC 4020
Final: TBA - Course Outline
- The course outline contains general information about the course, including the marking scheme.
- NB: The addendum to the course outline contains updated information due to the special health circumstances experienced during the Winter 2020 term.
- Required Text
-
- CS 488/688 Lecture notes. Hardcopy available at W Store in SCH, or as a downloadable PDF.
- Recommended Text
-
- OpenGL Programming Guide: The Official Guide to Learning OpenGL, by Kessenich et al.
- Computer Graphics with Open GL, by Hearn, Baker and Carithers.
Winter 2020 Assignments
- Please read our additional notes regarding assignment completion and submission. These notes may help you avoid losing marks unnecessarily.
-
Assignment 0: Warmup
Due Thursday, January 16th at 8:00 AM -
Assignment 1: OpenGL
Due Thursday, January 23rd at 8:00 AM -
Assignment 2: Pipeline
Due Thursday, February 6th at 8:00 AM -
Assignment 3: Puppet
Due Thursday, February 27th at 8:00 AM -
Assignment 4: Trace
Due Thursday, March 5th at 8:00 AM -
Assignment 5: Project
Proposal due Thursday, March 12th at the beginning of lecture
Revised proposal due Thursday, March 19th at the beginning of lecture
Final submission due Monday, March 30th at 8:00 PM
Demos: Tuesday March 31st and Wednesday April 1st
Project Written Report: Thursday, April 2nd at the beginning of lecture
General information about CS 488/688
Start by visiting the old home page for the course, where you'll find lots of other useful information and links.
- The website open.gl is a great starting point for programming in modern OpenGL, featuring a sequence of well written tutorials.
- See also the longer sequence of tutorials at learnopengl.com, which go into more detail about specific topics.
- Song Ho Ahn also has a number of useful tutorials that explain concepts in 3D computer graphics, especially as related to the OpenGL graphics pipeline.
- Visit docs.gl for the best OpenGL API reference.
- You might also want to look at Terence's OpenGL tutorial slides.
- The Graphics Codex is a highly detailed overview of core topics in computer graphics, with lots of sample code and well documented equations. It's available online and as an app for iOS. The website includes very detailed programming projects. You might also want to look at the syllabus for Morgan McGuire's graphics course at Williams College, which covers lots of great topics and techniques related to procedural generation.
- Peter Shirley has written some fun, short, tutorial-style e-books to help you build ray tracers. The approach they use doesn't map perfectly onto our Assignment 4, but might neverthess provide some useful ideas, and inspiration for the final project. Separately, he has made the ray tracing chapter from his main textbook available for free online. It provides lots of useful formulas.
If you are familiar with other resources or websites that would be of general use to students in this course, please send them to us and we might add them here.