CS 488/688: Introduction to Computer Graphics

Spring 2022


Welcome to the home page for CS 488/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. CS 488/688 has a fairly heavy project component and should not be taken in conjunction with other heavy project courses.


Course logistics for Spring 2022

Instructor
Spencer Van Leeuwen
srvanlee@uwaterloo.ca
Office hours: Fridays at 2:00–3:00 PM ET in DC 2126.
Teaching Assistants
Mustafa Ege Ciklabakkal
mustafa.ege.ciklabakkal@uwaterloo.ca

Logan Mosier
logan.mosier@uwaterloo.ca

Weijie Zhou
weijie.zhou@uwaterloo.ca

TA Office Hours: Mondays and Tuesdays at 1:00–2:00 PM in the Undergraduate Graphics Lab (MC 3007). The schedule can be found here.
Lectures
Mondays and Wednesdays at 2:30–3:50 PM in MC 4063
Undergraduate Graphics Lab
MC 3007. There are no scheduled lab times. Safety protocols for shared spaces on campus apply in the lab. The lab is available 24 hours a day for students enrolled in CS 488/688. The code to open the lab will be provided on Piazza shortly after classes begin.
Exams
Midterm: Wednesday, June 8 at 2:30 PM in MC 4045
Final Exam: Friday, August 5 at 7:30-10:00 PM -- MC 4021
Course Outline
The course outline contains general information about the course, including the marking scheme.
Course Notes
Lectures covering assignment-related content will be based on the CS 488/688 course notes. They are available as a downloadable PDF.
Recommended Text
There are several free to access books available in the course reserves. Here are a couple that are worth highlighting:
  • "Fundamentals of Computer Graphics" by Marschner and Shirley has a lot of overlap with this course and explains concepts very well.
  • "OpenGL Programming Guide: The Official Guide to Learning OpenGL" (currently the 9th edition by Kessenich et al.) is traditionally recommended for this course. It may be of use for the project, but online resources are less dense and are generally more appropriate for assignments.
Additional resources are provided at the bottom of this webpage.
Piazza
We're using Piazza for questions and discussions of class-related material. You should have been signed up at the start of the term. If you have not been enrolled on Piazza, you should email the instructor to get access.

Spring 2022 Assignments

Additional Resources

  • The website open.gl can be a good starting point for programming in modern OpenGL.
  • A longer sequence of tutorials at learnopengl.com goes into more detail about specific topics in OpenGL.
  • 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.
  • Docs.gl for the OpenGL API reference.
  • Terence's OpenGL tutorial slides.
  • In addition to the ray tracing chapter in "Fundamentals of Computer Graphics" by Marschner and Shirley in the course reserves, other good ray tracing resources include the pbrt book as a general reference and Peter Shirley's e-books as supplementary material.
  • The website realtimerendering.com lists a bunch of books that are free online.
  • The graphics codex can serve as a reference to the topics and tools used in graphics.
  • Shadertoy and GLSL Sandbox showcase interesting (fragment) shader programs.