COMP 557 Fundamentals of Computer Graphics

Fall 2019 - General Information

Lectures 4:05 PM - 5:25 PM, Tuesdays and Thursdays
Location MAAS 10
Credits 4
   
Instructor Paul Kry
Telephone 514 398 2577
Office MC423
Office Hours 10:00 AM - 11:00 AM, McConnell 423, Wednesdays, or by appointment (any time!)
   
Teaching Assistants Mahyar Bayran, Kaixiang (Kevin) Xie, Luca Zarow
Contact information and office hourse on My Courses
   
MyCourses for discussion boards and assignment submission

Description

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, totaling 50% of the course mark, but not all of equal weight! The assignments require programming in Java. Links to assignments will be posted to MyCourses during the term. Instructions for assignment setup are posted in 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.

Resources

There is no required text for the course, but one of the following course textbooks is recommended (the first slightly more than the second) and is available for purchase at the McGill bookstore.
  • Fundamentals of Computer Graphics , 3rd or 4th Edition, Shirley and Marschner
  • Computer Graphics Principles and Practice, 3rd Edition, Hughes et al.
I refer to these books with abbreviations FCG and CGPP. Th CGPP 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 is the OpenGL programming guide.

  • OpenGL Programming Guide: The official guide to learning OpenGL, search online
Note that we will be largely using OpenGL 2.0 in this course, which is at a sweet spot for teaching, and for relevance, as it includes both the convenience of immediate mode as well as GLSL programmable graphics shaders, and is more or less still supported on Macintosh.

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)
Additional resources will be provided in MyCourses throughout the term.

Prerequisites

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 Calculus 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 250 Introduction to Computer Science -- This prerequisite is to ensure that students have a sufficiently high level of computer science and mathematical maturity.

Tentative Schedule and Topics

The following list is a tentative schedule of topics. MyCourses course content will have the official list of topics as the term progresses. That is, 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
    Rotation
  3. Transformations
    Hierarchies
  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
    Radiosity
  23. Compositing
    Transparency
    Blending
  24. Colour
    Colour matching experiment
    CIE XYZ
    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 www.mcgill.ca/integrity for more information, as well as www.mcgill.ca/students/srr/honest with respect to student rights and responsibilities. From the dean of students, on academic integrity: As instructors, if you suspect a student has plagiarized or cheated on a test or assignment, remember that you cannot penalize them yourself. This must be handled through the Code of Student Conduct and Disciplinary Procedures. The Disciplinary Officer for your Faculty can help guide you through the process.

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 4.7.2.1, General University Information and Regulations at www.mcgill.ca. 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.

Please note McGill's Policy for the Accommodation of Religious Holy Days.

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 on the Student Rights and Responsibilities page.