CPSC 314
Winter term 2016

This course provides an introduction to the computer graphics algorithms, with main focus on rendering, glancing into modeling and animation.

We will learn the modern programmable graphics pipeline, using the OpenGL shading language (GLSL), with vertex and fragment shaders. For three assignments, we will use WebGL and Javascript; for the last one we'll use C++.

Please see the official UBC course description for prerequisites and schedules.

Instructor: Alla Sheffer. Office hour: Fri, 11-12pm ICICS 005 (or x651).

Contact: We will use Piazza for all the announcements and questions. Please sign up!

Course Work

Mark distribution: Programming Assignments (40%), Quizes/Theory Assignmens (6%), Midterms (24%), Participation (2%), Final Exam (28%) [Bonus (8%)]. For more details see the course policies

Schedule: Midterm 1 on October 12th (in class), Midterm 2 on November 18th (in class). Final exam: TBD.


Lectures are Mondays, Wednesdays and Fridays 10-11 pm at DMP 110.

Lecture materials will appear here as we proceed, with no guarantee we'll post everything. So do come to the lectures!

Wed, Sept 7th01 - Intro[PDF]
Fri, Sept 9th02 - Rendering Pipeline, Part I[PDF]
Mon, Sept 12th03 - Shaders and OpenGL[PDF]
Wed, Sept 14th04 - Shaders/Rendering Pipeline, Part II[PDF]
Fri, Sept 16th05 - Rendering Pipeline (cont.)^
Mon, Sept 19st06 - Rendering Pipeline/Coordinate Systems & Linear Transformations[PDF]
Wed, Sept 21st07 - Linear Transformations (cont)^
Fri, Sept 23rd08 - Affine Transformations[PDF]
Mon, Sept 26th09 - Homogeneous coordinates and transformations[PDF]
Wed, Sept 28th10 - Composite transformations. Hierarchies.[PDF]
Fri, Sept 30th11 - Transformations (cont.) ^
Mon, Oct 3rd12 - Transformations (cont.) ^
Wed, Oct 5th13 - Transformations (cont.) ^
Fri, Oct 7th14 - Transformations (cont.) ^
Mon, Oct 10th(Thanksgiving)
Wed, Oct 12th(Midterm I)
Fri, Oct 14th 15 - Camera and Projection[PDF]
Mon, Oct 17th15 - Projection.^
Wed, Oct 19th16 - Clipping. Rasterization [PDF]
Fri, Oct 21st17 - Clipping. Rasterization  (cont.) [PDF]
Mon, Oct 24th18 - Rasterization ^
Wed, Oct 26st19 - Rasterization, Interpolation ^
Fri, Oct 28rd20 - Interpolation, Lighting and shading [PDF]
Mon, Oct 31th21 - Lighting and shading, Texturing [PDF]
Wed, Nov 2nd22 - TLighting and shading, Texturing ^
Fri, Nov 4th23 - Texturing, bump/displacement mapping. Reflections. ^
Mon, Nov 7nd24 - Texturing, bump/displacement mapping. Reflections. ^
Wed, Nov 9th25 - Shadow maps (prev. pdf). Depth Test. [PDF]
Fri, Nov 11th(Rememberance Day)
Mon, Nov 14nd26 - Global Illumination. Ray Tracing [PDF]
Wed, Nov 16th27 - Review [PDF]
Fri, Nov 18th(Midterm II)
Mon, Nov 21st28 - Global Illumination Cont. ^
Wed, Nov 23th29 - Global Illumination. Colors[PDF]
Fri, Nov 25th30 - Blending. Compositing[PDF]
Mon, Nov 28th31 - Aliasing/Anti-aliasing[PDF]
Mon, Dec 12th !!! Big Review (pre final) !! [PDF]


#Date Released (tentative)Date dueLinks
1 - IntroSept 7thSept 30th[Template] | [PDF]
Theory 1Sept 15thSept 23rd[PDF] | [Solution]
Theory 2Sept 27thOct 7th[PDF] | [Solution]
2 - Fun with TransformationsSep 27thOct 21th[Template] | [PDF]
3 - Lighting and ShadingOct 23rdNov 14th[Template] | [PDF]
Theory 3Oct 23rdNov 9th[PDF] | [Solution]
4 - TracingNov 9thDec 2nd[Template] |[Changed files 11/23] | [PDF]
Theory 4Nov 23thDec 2nd[PDF] | [Solution]

TAs: Xinyi Zhang , Daniela Correa, Enrique Alberto Rosales Ruiz, Amon Ge
Please contact them via Piazza or come to one of the labs.

TAs will be able to answer your questions regarding the assignments during the lab hours and may hold extra office hours prior to assignment deadlines.

To submit your programming assignment, please use handin.

Each programming assignment is due 23:59:59 pm on the day specified, measured by the handin. No late assignments accepted, except for the grace days:

Grace days: Each student may use up to 3 grace days per term. We will keep track of your grace days. Use these as you wish to help manage your time, but use them wisely. You can use all three on one assigment, or one day for each of three assignments. Grace days are counted as integers, i.e., if you are one hour late, that counts as one grace day. Weekends (Sat/Sun) do not count (so submittng an assigment on Monday instead of Friday counts as one day). Once your grace days are all used, late assignments will receive a grade of zero.

Grading: We will use "face-to-face grading," i.e., you will be required to demonstrate that you understand why your program works. You must be able to explain every single line you wrote! You must get a passing grade in assignments to pass the course.


While there is no required textbook for the course, you can find most of the material covered on the lectures in Foundations of 3D Computer Graphics by Steven J. Gortler, MIT Press, 2012, which you can get online for free. Get to know the book well, it might come in handy!

WebGL/OpenGL resources: Official Three.js docs | A good WebGL book | Easy Three.js/WebGL tutorial

Previous course offerings: Jan 2016 | Sept 2015 | Jan 2015 | Sept 2014 | Jan 2014 | Sept 2013 | Jan 2013 | Sept 2012 | Jan 2012 | Sept 2011 | Jan 2011 | Sept 2010 | Jan 2010


Plagiarism: Shortly: don't cheat. What's considered cheating in CPSC 314: here. What department does with cheaters: here.

Missed work: Policy here.

Dropping: Because of the high demand for this course, the drop deadlines will be strictly enforced. No drop forms will be signed by the instructor after the first drop deadline. After that date, you will not be given permission to drop, and you will either have to complete the course or receive an "F" for the course at the end of the term. This policy has been adopted to encourage students to make a serious commitment to the course or to drop it early so that other students waiting to get into the course can register for it.

Template by Iron Summit Media Strategies, LLC.