CPSC 314    Computer Graphics    September 2011

The course will provide an introduction to theory and practice of computer graphics algorithms, including different aspects of modelling, rendering and basic animation.

Topics to be covered include most or all of the following: geometric transformations; the rendering pipeline, including perspective projection, scan conversion, and hidden surface removal; lighting and illumination; texture mapping; colour models; geometry modeling and data structures; complex shading algorithms; ray-tracing; animation.

This course is the first in our sequence on computer graphics, followed by Modelling (424) and Animation (426) as well as several graduate CG courses.

Examples of cool programs written by recent and current students can be found (look for 'hall of fame'): here, here, and here.   

  • 12/1/11 - Deadline for programming assignment 4 extended to Wed Dec 7, 4PM.
  • 11/14/11 - Solution for third theory assignment is here.
  • 11/12/11 - The template for the fourth programming assignment has been updated with multiple test scenes.
  • 11/10/11 - Last (fourth) programming assignment is out, due Dec 2 4PM. The template contains for now one example input, more will be added in the next few days.
  • 11/1/11 - Second midterm postponed to Nov 17th
  • 11/1/11 - Deadline for programming assignment 3 extended to Mon Nov 7, 4PM.
  • 11/1/11 - Third theory assignment is out, due Nov 10, in class.
  • 10/18/11 - Solution for second theory assignment is here.
  • 10/18/11 - Third programming assignment is out.
  • 9/28/11 - Solution for first theory assignment is here.
  • 9/27/11 - Second theory assignment is out, due Oct 13 in class.
  • 9/21/11 - Second programming assignment is out, due Oct 14 4PM.
  • 9/12/11 - A tar for just the required components of assignment one is here.
  • 9/6/11 - First programming assignment is out, due Sep 23 4PM.
  • 9/6/11 - First theory assignment is out, due Sep 22 in class.
  • 8/24/11 - The first class (and first lab) will be on Thu Sep 8.

URL http://www.ugrad.cs.ubc.ca/~cs314


I am Alla Sheffer. You can contact me by e-mail (sheffa@cs.ubc.ca), I generally try to respond within one work day, or come to my office hours (my office is x651):
  • Monday 2-3pm
  • Tuesday 3:30-4:00pm
  • Wed 2-3pm
Some weeks I may not be able to make them all, but will post this. General questions should be asked on the course discussion group.

 TAs:   Mike Boers and Mikhail Bessmeltsev will help with the course. TA will typically have office hours in the lab in the days before assignment deadlines (announced in the discussion group).

Lectures/Labs Lectures: Tue Thu 14:00 - 15:20        Location Dempster 201        Sep 8 - Dec 1, 2011
Labs: Wed 12-13, Thu 15:30-16:30        Location CICSR 005
In the labs TAs will review classroom material and help you with assignments. You don't need to come to these if you don't want to.

Prerequisites MATH 200, MATH 221 and either (a) CPSC 221 or (b) all of CPSC 260, EECE 320. Students are expected to be able to program in C++.

Grading Programming Assignments (40%), Theoretical homework (5%), Midterms (25%), Final Exam (30%)   

Course Resources (notes,textbooks,etc...) Lecture Notes: The main source of material for the course are the lecture and lab notes which will become available as the course progesses. Notes from earlier offerings can be found in the links below (under "Review and Exam Prep").
Textbooks: The recommended books and manuals provide optional reading, which can help you better understand the material. However they do not replace any material taught in class.
OpenGL: OpenGL.org is the official web site for OpenGL, with lots of useful stuff. Nate Robins' OpenGL resources includes a place to download GLUT for Windows, as well as some great tutorial programs to make it easier to learn the OpenGL API.
Applets: Applets used in the lectures . Additional applets: metamers    triple-cell response    additive colour mixing   

Discussion Group There is a Google group for this offering: cpsc314. You will need to join Google groups to get access. Both I and the TAs will monitor the group answering questions on a daily basis. We expect students to be up to date on information published in the group or on this webpage.

Assignments Assignments will show up here as they become available. Theoretical homework should be submitted in class (leave them in my main office mail slot with an explanatory note if you can't make it to class for some reason). To submit the programming assignments, unless specified otherwise, use the 'handin' program.

Hall of Fame (In progress): Here

Review and Exam Prep Old assignments and midterms/finals (with solutions) can be found on the pages of older 314 offerings:
Jan 2011     Sep 2010     Jan 2010     Sep 2009     Jan 2009     Sep 2008     Jan 2008     Sep 2007     Jan 2007     Sep 2006     Jan 2006     Sep 2005     May 2005     Jan 2005     Sep 2004     Jan 2004     Sept 2003    

 Policies   Specific Course Policies    UBC student policies