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: Mikhail Bessmeltsev. Office hour: Fri, 1-2pm ICICS 187.
Contact: We will use Piazza for all the announcements and questions. Please sign up!
Mark distribution: Programming Assignments (40%), Theory Assignments (8%), Midterms (24%), Participation (2%), Final Exam (26%) [Bonus (10%)]
Schedule: Midterm 1 on October 9th (in class), Midterm 2 on November 9th (in class). Final exam: Dec 18 2015 08:30 AM.
Lectures are Mondays, Wednesdays and Fridays 12-1 pm at DMP 301.
Here lecture materials will appear as we proceed, with no guarantee we'll post everything. So do come to the lectures!
Date | Topic | Links |
---|---|---|
Wed, Sept 9th | 01 - Intro | [PDF] |
Fri, Sept 11th | 02 - Rendering Pipeline, Part I | [PDF] |
Mon, Sept 14th | 03 - Shaders and OpenGL | [PDF] |
Wed, Sept 16th | 04 - Rendering Pipeline, Part II | [PDF] |
Fri, Sept 18th | 05 - Coordinate Systems & Linear Transformations | [PDF] |
Mon, Sept 21st | 06 - (Continuing Linear Transformations) | ^ |
Wed, Sept 23rd | 07 - Affine Transformations | [PDF] |
Fri, Sept 25th | 08 - Homogeneous coordinates and transformations | [PDF] |
Mon, Sept 28th | 09 - Composite transformations. Hierarchies. | [PDF] |
Wed, Sept 30th | 10 - Transformations wrapup. Camera. | [PDF] |
Fri, Oct 2nd | 11 - Camera. Orthographic projection. | [PDF] |
Mon, Oct 5th | 12 - Orthographic & perspective projections. | [PDF] |
Wed, Oct 7th | 13 - Misc. transformations. Review. | [PDF] |
Fri, Oct 9th | (Midterm I) | |
Mon, Oct 12th | (Thanksgiving) | |
Wed, Oct 14th | 14 - Clipping. Rasterization | [PDF] |
Fri, Oct 16th | 15 - Rasterization (cont.) | [PDF] |
Mon, Oct 19th | 16 - Interpolation. Barycentric coordinates | ^ |
Wed, Oct 21st | 17 - Lighting and shading | [PDF] |
Fri, Oct 23rd | 18 - Lighting and shading | ^ |
Mon, Oct 26th | 19 - Texturing | [PDF] |
Wed, Oct 28th | 20 - Texturing, bump/displacement mapping. Reflections. | ^ |
Fri, Oct 30th | 21 - Shadow maps (prev. pdf). Depth Test. | [PDF] |
Mon, Nov 2nd | 22 - Global Illumination. Ray Tracing | [PDF] |
Wed, Nov 4th | 23 - Global Illumination Cont. | ^ |
Fri, Nov 6th | 24 - Review 2 | [PDF] |
Mon, Nov 9th | (Midterm II) | |
Wed, Nov 11th | (Rememberance Day) | |
Fri, Nov 13th | 25 - Global Illumination. Path Tracing | [PDF] |
Mon, Nov 16th | 26 - Path Tracing cont. Monte-Carlo methods. | ^ |
Wed, Nov 18th | 27 - Blending. Compositing | [PDF] |
Fri, Nov 20th | 28 - Sampling. Aliasing & Anti-Aliasing | [PDF] |
Mon, Nov 23rd | 29 - Color | [PDF] |
Wed, Nov 25th | 30 - Color cont. (prev pdf). Interpolation | [PDF] |
Fri, Nov 27th | 31 - Interpolation | ^ |
Mon, Nov 30th | 32 - Intro to Geometric Modeling | [PDF] |
Wed, Dec 2nd | 33 - Big review I | [PDF] |
Fri, Dec 4th | 34 - Big review II | [PDF] |
# | Date Released | Date due | Links |
---|---|---|---|
1 - Intro | Sept 11th | Sept 25th | [Template] | [PDF] |
Theory 1 | Sept 15th | Sept 23rd | [PDF] | [Solution] |
Theory 2 | Sept 30th | Oct 7th | [PDF] | [Solution] |
2 - Fun with Transformations | Oct 2nd | Oct 19th | [Template] | [PDF] |
3 - Lighting and Shading | Oct 23rd | Nov 6th | [Template] | [PDF] |
Theory 3 | Oct 23rd | Nov 2nd | [PDF] | [Solution] |
4 - Tracing | Nov 16th | Nov 30th | [Template] | [PDF] |
Theory 4 | Nov 25th | Dec 2nd | [PDF] |
TAs: Izabelle Janzen, Henry Li, and Minchen Li.
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: Tuesdays and Wednesdays 1 - 2 pm, and Thursdays 3.30 - 4.30 pm.
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. 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 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.