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!
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!
Date | Topic | Links |
---|---|---|
Wed, Sept 7th | 01 - Intro | [PDF] |
Fri, Sept 9th | 02 - Rendering Pipeline, Part I | [PDF] |
Mon, Sept 12th | 03 - Shaders and OpenGL | [PDF] |
Wed, Sept 14th | 04 - Shaders/Rendering Pipeline, Part II | [PDF] |
Fri, Sept 16th | 05 - Rendering Pipeline (cont.) | ^ |
Mon, Sept 19st | 06 - Rendering Pipeline/Coordinate Systems & Linear Transformations | [PDF] |
Wed, Sept 21st | 07 - Linear Transformations (cont) | ^ |
Fri, Sept 23rd | 08 - Affine Transformations | [PDF] |
Mon, Sept 26th | 09 - Homogeneous coordinates and transformations | [PDF] |
Wed, Sept 28th | 10 - Composite transformations. Hierarchies. | [PDF] |
Fri, Sept 30th | 11 - Transformations (cont.) | ^ |
Mon, Oct 3rd | 12 - Transformations (cont.) | ^ |
Wed, Oct 5th | 13 - Transformations (cont.) | ^ |
Fri, Oct 7th | 14 - Transformations (cont.) | ^ |
Mon, Oct 10th | (Thanksgiving) | |
Wed, Oct 12th | (Midterm I) | |
Fri, Oct 14th | 15 - Camera and Projection | [PDF] |
Mon, Oct 17th | 15 - Projection. | ^ |
Wed, Oct 19th | 16 - Clipping. Rasterization | [PDF] |
Fri, Oct 21st | 17 - Clipping. Rasterization (cont.) | [PDF] |
Mon, Oct 24th | 18 - Rasterization | ^ |
Wed, Oct 26st | 19 - Rasterization, Interpolation | ^ |
Fri, Oct 28rd | 20 - Interpolation, Lighting and shading | [PDF] |
Mon, Oct 31th | 21 - Lighting and shading, Texturing | [PDF] |
Wed, Nov 2nd | 22 - TLighting and shading, Texturing | ^ |
Fri, Nov 4th | 23 - Texturing, bump/displacement mapping. Reflections. | ^ |
Mon, Nov 7nd | 24 - Texturing, bump/displacement mapping. Reflections. | ^ |
Wed, Nov 9th | 25 - Shadow maps (prev. pdf). Depth Test. | [PDF] |
Fri, Nov 11th | (Rememberance Day) | |
Mon, Nov 14nd | 26 - Global Illumination. Ray Tracing | [PDF] |
Wed, Nov 16th | 27 - Review | [PDF] |
Fri, Nov 18th | (Midterm II) | |
Mon, Nov 21st | 28 - Global Illumination Cont. | ^ |
Wed, Nov 23th | 29 - Global Illumination. Colors | [PDF] |
Fri, Nov 25th | 30 - Blending. Compositing | [PDF] |
Mon, Nov 28th | 31 - Aliasing/Anti-aliasing | [PDF] |
Mon, Dec 12th | !!! Big Review (pre final) !! | [PDF] |
# | Date Released (tentative) | Date due | Links |
---|---|---|---|
1 - Intro | Sept 7th | Sept 30th | [Template] | [PDF] |
Theory 1 | Sept 15th | Sept 23rd | [PDF] | [Solution] |
Theory 2 | Sept 27th | Oct 7th | [PDF] | [Solution] |
2 - Fun with Transformations | Sep 27th | Oct 21th | [Template] | [PDF] |
3 - Lighting and Shading | Oct 23rd | Nov 14th | [Template] | [PDF] |
Theory 3 | Oct 23rd | Nov 9th | [PDF] | [Solution] |
4 - Tracing | Nov 9th | Dec 2nd | [Template] |[Changed files 11/23] | [PDF] |
Theory 4 | Nov 23th | Dec 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.