CS 488/688: Introduction to Computer Graphics
Fall 2016
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 Fall 2016
- Instructor
- Craig S. Kaplan
(see also)
DC 2110
csk@uwaterloo.ca
Office hours: Mondays, 3:00–4:00 (or by appointment) - Teaching Assistants
- Jumyung "JC" Chang
j48chang@uwaterloo.ca
Office hours: Mondays, 10:00–11:00 in DC 3594 - Xiang Fang
x2fang@uwaterloo.ca
Office hours: Wednesdays, 2:00–3:00 in MC 3007 - Boris Kravchenko
bkravche@uwaterloo.ca
Office hours: Fridays, 2:00–3:00 in MC 3007 - Lectures
- Tuesdays and Thursdays, 11:30–12:50, DWE 3518
- 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.)
- Exams
- Midterm: Thursday, October 27th, 11:30am-12:50pm
in DWE 3518 (in class). The midterm covers everything up to
the end of Hidden Surface Removal, and is worth 14% of your
final grade.
Final: TBA - Course Outline
- The course outline contains general information about the course, including the marking scheme, in a format mandated by the Registrar's Office.
- Books
-
- CS 488/688 Lecture notes. Hardcopy available at Media.doc in MC 2018, or as a downloadable PDF.
- Computer Graphics: Principles and Practice (3rd Edition), by Hughes et al.
- Computer Graphics with Open GL (4th Edition), by Hearn, Baker and Carithers.
- OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3 (8th Edition), by Schreiner et al.
Fall 2016 Readings
The readings in the official course notes are out of date,
as we change textbooks and new editions come out. Here is a
selection of readings for this term's offering. "CGPP" and "CGOGL"
refer to the textbooks Computer Graphics: Principles and
Practice and
Computer Graphics with OpenGL, respectively.
- Module 2: Introduction
- CGPP: Chapter 1, Section 3.1, Section 15.1, Section 15.2, Section 16.3
- Module 5: Geometries
Module 6: Affine Geometry and Transformations
Module 7: Windows, Viewports, NDC- CGPP: Sections 7.1–7.7, Chapter 10, Chapter 11
- Module 9: Projections and Projective Transformations
- CGPP: Sections 10.13, Chapter 13, Section 36.5
- Module 11: Polygons
- CGPP: Sections 7.10
- Module 12: Hidden Surface Removal
- CGPP: Chapter 36
- Module 13: Hierarchical Models and Transformations
- CGPP: Section 6.6
- My slides
- Module 15: Colour and the Human Visual System
- CGPP: Chapter 28
- My slides
- Module 16: Reflection and Light Source Models
- CGPP: Sections 6.2.2, 6.2.3, 6.5, Chapter 27 (advanced)
- My slides
- Module 18: Ray tracing
- Andrew Glassner, Introduction to Ray Tracing (full book available at DC library reserve desk)
- Peter Shirley et al., Foundations of Computer Graphics, Chapter 10 (Ray Tracing)
- David Kirk and James Arvo, "The Ray Tracing Kernel"
- My slides
- My slides about global illumination
- Animation
Fall 2016 Assignments
- Please read our additional notes regarding assignment completion and submission. These notes may help you avoid losing marks unnecessarily.
-
Assignment 0: Warmup
Due Wednesday, September 14th at 11:59pm -
Assignment 1: OpenGL
Due Wednesday, September 21st at 11:59pm -
Assignment 2: Pipeline
Due Wednesday, October 5th at 11:59pm -
Assignment 3: Puppet
Due Wednesday, October 19th at 11:59pm -
Assignment 4: Trace
Due Friday, November 4th at 11:59pm -
Assignment 5: Project
Proposal due Wednesday, November 9th at 11:59pm
Revised proposal due Wednesday, November 16th at 11:59pm
Final submission due Monday, December 5th at 11:59pm
Demos: TBA
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 tray 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.