Computer Graphics


Jochen Lang

  • Office hours: Mondays 13:00-14:00
  • Office: STE-5098, 800 King Edward Ave, Ottawa, On., Canada

Teaching Assistant

Pooja Mamidala

  • Office hours: Fridays 8:00-9:00
  • Office: STE-5000G
  • Tasks: Laboratory, Thursdays 11:30-13:00, STE-2060, Marking assignments and midterm

General and Specific Objectives of the Course

Study the fundamental concepts of 3D computer graphics indepedent of rendering approach and graphics API. Gain a precise understanding of the rasterization pipeline that formes the basis of most rendering approaches today. Apply the knowledge both through a higher-level API and a low-level API. Students will gain enough applied knowledge to readily add 3D content to various applications and they will gain the fundamentals to study more advanced concepts in the future.

Calendar Description

Interactive computer graphics. Display data structures and procedures. Graphics pipeline. Geometric transformations. Viewing in three dimensions. Illumination and color models. Object modelling in 2D and 3D.

Course Prerequisites: MAT1341, CSI3105

See the official descripton in the University of Ottawa calendar.

Teaching Methods and Student Expectations

The course material will be covered in lectures and labs. Additional resources in form of textbooks and on-line references are listed below. Attendance of and participation in lectures and labs is mandatory. The lectures will be interactive and using a laptop for running, modifying examples will be beneficial.

Required Textbooks

  • Tomas Akenine-Möller, Eric Haines, Naty Hoffman, Angelo Pesce, Michał Iwanicki, and Sébastien Hillaire, Real-Time Rendering, A K Peters/CRC Press, 4th ed., 2018.
    This is an advanced text on real-time rendering approaches including good coverage of the fundamentals. The has a website with an extensive set of links and is often updated. The book is available at the Agora bookstore.

Recommended Textbooks and Resources

  • Steve Marschner and Peter Shirley, Fundamentals of Computer Graphics, 4th ed., A.K. Peters/CRC Press, 2015.
    The book has a website with links to a lot of related material including other schools using the text.
  • Graham Sellers, Richard Wright, Jr. and Nicholas Haemel, OpenGL SuperBible: Comprehensive Tutorial and Reference, 7th ed., Addison-Wesley, 2015.
    This is an excellent tutorial book which covers information of some of the labs as well as more advanced material. Programming examples are available from its' website.
  • Dan Ginsburg, Budirijanto Purnomo, Dave Shreiner and Aaftab Munshi, OpenGL ES 3.0 Programming Guide, 2nd Ed., Addison-Wesley Professional, 2014.
    This is the programming guide tailored to OpenGL ES 3.0. OpenGL ES 3.0 is the mobile version of the API but also runs on the desktop. OpenGL ES 3.0 is also the basis for WebGL 2.0. See the accompanying website.
  • Kouichi Matsuda and Rodger Lea, WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL, Addison-Wesley Professional, 2013.
    This is the programming guide tailored to WebGL 1.0. WebGL 1.0 is based on OpenGL ES 2.0 and feels a bit dated now but it is still commonly used. See the accompanying website. WebGL 2.0 is available as a specification and is based on OpenGL ES 3.0. We will be using WebGL 2.0.
  • Jos Dirksen, Learning Three.js – the JavaScript 3D Library for WebGL, 2nd ed., 2015
    A gentle introduction to the Three.js API to WebGL. We will be using Three.js for the first labs and some of the lectures. Jos Dirksen's github account has a lot of examples. The official Three.js has many links.

Course Topics and Readings

Course notes will be made available through Virtual Campus, see a tentative list of topics with relevant chapters of the textbook.

Student Evaluation

Student evaluation will be based on a midterm and a final exam as well as three programming assignments and a final assignment including mandatory in-class presentation.

Marking Scheme

The maximum is 100 marks*) with the following breakdown:

Assignments (3) 30 marks
Final Assignment (incl. in-class presentation) 20 marks
Midterm 20 marks
Final exam 30 marks

*) If the student's mark in the exam component is less than 50%, i.e., (Midterm + Final) < 25, then the student's mark in the course will be (Midterm + Final) / 50.

The midterms and final exams will be closed book except for a copy of the WebGL 2.0 API Quick Reference Guide for the final, no other aids or notes.


The midterm is scheduled to take place during class on

Wednesday, February 13th, 2019, 8:30-10:00

Note: The final exam mark will not overwrite the midterm mark(s).

Attendance at the midterm exam is mandatory. A student who has an official medical certificate (from the University Health Services) for the absence during the midterm will have the final scaled accordingly. In this case, the student will not receive more than 20% of his/her final grade by the drop date.

Reminder: Academic Regulations

Class attendance is mandatory. As per academic regulations, students who do not attend 80% of the class may not be allowed to write the final examinations.

All components of the course (i.e., assignments, midterms, etc.) must be fulfilled otherwise students may receive an INC as a final mark (equivalent to an F). This also holds for a student who is taking the course for the second time.

Academic Fraud and Plagiarism

Any form of plagiarism or fraud including on an assignment will be reported. If it is found that (parts of) an assignment submission is copied, it will result in an automatic zero for the assignment. The TAs and myself are using software (moss) that identifies code similarity automatically.

For any plagiarism or fraud the university regulation on academic fraud applies. The plagiarism rules explains the University of Ottawa rules. Please familiarize yourself with them.