COMP 557 Fundamentals of Computer Graphics

Winter 2018 - General Information

Please note that this course is not a prerequisite for COMP 559 Computer Animation in winter term 2018

Please also note that 557 is now a 4 credit course!

Lectures 8:35 AM - 9:55 AM, Tuesdays and Thursdays
Location BURN 1B45
Credits 4
Instructor Paul Kry
Telephone 514 398 2577
Office MC113N
Office Hours 2 PM - 4 PM, Wendesdays, or by appointment (any time!)
Teaching Assistants Fan Ma, Hugo Scurti, Yue Wang
Contact information and office hourse on My Courses
MyCourses for discussion boards and assignment submission


The study of fundamental mathematical, algorithmic and representational issues in computer graphics. The topics include an overview of graphics pipeline, projective geometry, homogeneous coordinates, projective transformations, quadrics and tensors, line-drawing, surface modeling and object modeling, reflectance models and rendering, texture mapping, polyhedral representations, colour perception, and other selected topics according to available time (see the tentative schedule below).

Assignments, Exercises, and Exams

There will be four assignments during the term, each worth 12.5% totaling 50% of the course mark. The assignments require programming in Java. Links to assignments will be posted to MyCourses during the term. Instructions for assignment setup will also be provided on MyCourses. Late assignments will be graded with a 10% penalty and will be accepted up to 3 days from the original due date (i.e., if you are not going to make the deadline, get some sleep and find the time to finish your submission properly).

There will be two exams, worth a total of 50% of the final grade. The first will be a midterm exam which will take place in class in mid October. It is worth 20% of your grade. The second exam will take place during the Final Exam Period and is worth 30% of the final grade. Practice problems, old midterms and final exams, and in some cases solutions will also be posted to MyCourses during the term.


New for this offering of the course (updated 19 Oct, 2017), the following course textbook is recommended, and is available for purchase at the McGill bookstore for the beginning of the term.
  • Computer Graphics Principles and Practice, 3rd Edition, Hughes et al.
This book is a recent update of a classic textbook, and is the most complete reference available (covering many additional topics that we will not have time for in the course). The other very useful reference for working on OpenGL assignments it the OpenGL programming guide.
  • OpenGL Programming Guide: The official guide to learning OpenGL (The red Book, now orange?), search online
There are also many alternative and online resources that you may find helpful for much of the material, including these listed below.
  • The Graphics Codex (mostly focuses on rendering, but has an important overlap with many fundamentla topics, and shows how material across several popular texts is related)
  • Fundamentals of Computer Graphics, 3rd or 4th Edition, Shirley and Marschner, the previous textbook for this course, which you may find for cheap in a used book store.
Links to additional online resources will be provided in MyCourses throughout the term.


Graduate students interested in this course, who have not already taken a graphics course, will likely have taken courses equivalent to the prerequisites listed below. For undergraduate students, there are three official prerequisites for the course:
  • COMP 206 Introduction to Software Systems -- Historically, the assignments have required programming in C and the use the unix utility make, but for several years the assignments have been in Java. Nevertheless, the prerequisite still has some relevance because for the use of libraries, and debugging and testing of code.
  • MATH 222 Calculs 3 -- Graphics involves parametric representations, partial derivatives and integrals and some vector calculus. This prerequisite will ensure you are prepared, and it or its equivalent is required for all CS Majors.
  • MATH 223 Linear Algebra -- This course will build upon your basic understanding of vectors and matrices. You should have at least a B grade in your linear algebra course, or be prepared for a serious review.
  • COMP 251 Data Structures and Algorithms -- This prerequisite is mostly there to ensure that students have a sufficiently high level of mathematical maturity. A high grade in COMP 250 is probably sufficient though.

Tentative Schedule

The following schedule is tentative. The adjusted schedule will be recorded in MyCourses as the term progresses. Adjustments will be made to synchronize with assignments and to better match material in the textbook and other sources. Topics will be added and removed depending on interest and time permitting.

  1. Introduction
    Sets as Geometry
    2D Transformations
  2. Vector spaces
    Affine spaces
    Homogeneous coordinates
  3. Transformations
  4. Viewing transformation
    Perspective projection
  5. Projection taxonomy
    Normalized device coordinates
  6. Mesh terminology
    Euler characteristic
    Half edge data structure introduction
  7. Half Edge data structure examples
    Level of Detail introduction
  8. Edge collapse and vertex split
    Point plane distance
    Quadric error metric introduction
  9. Mesh simplification
    Quadric error metric
  10. Subdivision curves
    Corner cutting
    Limit point analysis
    Subdivision surface introduction
  11. Curves introduction
    Bezier, Interpolation, and Hermite curves
    Bezier properties
    Change of basis
  12. Tensor product patches
    Decaslejau algorithm
    Rational curves B-spline introduction and intuition
  13. Surfaces of revolution,
    Swept surfaces,
    Frenet frame,
    Parallel transport
  14. Clipping
    Pipeline rasterization and operations
    Painter's and Warnock algorithm
    Binary space partitions
    Depth Buffer

  15. Midterm Exam (in class)

  16. Ray tracing
    Ray transformation
    Shadow rays
    Ray triangle intersection
    Ray quadric intersection

  17. Barycentric coordinates
    Barycentric interpolation
    Bilinear interpolation
  18. Quadric transformations
    Quadric normals
    Constructive solid geometry
    Illumination (ambient, diffuse, specular, attenuation)
  19. Light and reflectance models
    (Lambertian, Blinn-Phong)
    Shading models (Phong, Gouraud)

  20. Texture mapping
    Magnification and Minification
    Mip maps
    Bilinear interpolation
  21. Shadow maps
    Stencil shadow volumes
  22. The rendering equation
  23. Compositing
  24. Colour
    Colour matching experiment
    Chromaticity diagram
    Colour conversion between different displays
  25. Colour purity and saturation
    Complementary colours
    Just noticable differences
    Gamuts and gamma
  26. Review for final

In case you didn't already know...

McGill University values academic integrity. Therefore, all students must understand the meaning and consequences of cheating, plagiarism and other academic offences under the Code of Student Conduct and Disciplinary Procedures. See for more information, as well as with respect to student rights and responsibilities.

It should be noted that, in accordance with article 15 of the Charter of Students' Rights, students may submit examination answers in either French or English.

According to Senate regulations, instructors are not permitted to make special arrangements for final exams. Please consult the Calendar, section, General University Information and Regulations at Special arrangements in emergencies may be requested at your Student Affairs Office. If you have a disability, please advise the Office for Students with Disabilities (398-6009) as early in the term as possible so that we can provide appropriate accommodation to support your success.

In the event of circumstances beyond the instructor's control, the evaluation scheme as set out in this document might require change. In such a case, every effort will be made to obtain consensus agreement from the class.

Additional policies governing academic issues which affect students can be found in the Handbook on Student Rights and Responsibilities.