COMP 557 Fundamentals of Computer Graphics

Fall 2016 - General Information

Lectures 8:35 AM - 9:55 AM, Tuesdays and Thursdays
Location Trottier Building 0070
Credits 3
Instructor Paul Kry
Telephone 514 398 2577
Office MC113N
Office Hours 3 PM - 4 PM, Tuesdays, or by appointment (any time!)
Teaching Assistants Jian (Ethan) Li
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.

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.


The following course textbook is recommended, and is available for purchase at the McGill bookstore for the beginning of the term.
  • Fundamentals of Computer Graphics, 3rd or 4th Edition, Shirley and Marschner
There are many online resources that you may find helpful, including those listed below. 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 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.
Although it is not a prerequisite, it is strongly recommended that you have taken MATH 222 (Calculus 3) which is required for CS Majors, or the equivalent. In particular, you need to know what a parametric representation of a smooth surface is, and what a partial derivative is.

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.