CS 488/688: Introduction to Computer Graphics

Fall 2023


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 2023

General information about CS 488/688

Start by visiting the Original 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.
  • Physically Based Rendering:From Theory To Implementation, Matt Pharr, Wenzel Jakob, and Greg Humphreys
  • 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.

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.