Introduction to Computer Graphics
CMPUT 411/511
(Winter 2024)
All
classes will be delivered virtually using Zoom
After registering, you will
receive a confirmation email about joining the meeting.
All lectures will be recorded and
made available in eclass that day
Course Description
CMPUT 411/511 is an introductory course to computer graphics
concentrating on two and threedimensional graphics and interactive
techniques. It focuses on fundamental concepts and techniques and their
relationship to multiple graphic problem domains (rendering, animation,
geometry, imaging).
CMPUT 204 or 275, 301;
one of CMPUT 340, 418 or equivalent knowledge, and MATH 214.
The final grade for the course is based on our best assessment of
your understanding of the material and your commitment and participation. The
problem sets and final exam are combined to give a final grade:
ACTIVITIES 
Weight 
Final Exam 
30% 
Labs (10 x 5%) 
50% 
Lab Bonus Points (10 x 1%) 
10% 
Math Problems (2 x 5%) 
10% 
o (60%) Programming Assignments. Most of the
coursework is centred around ten programming assignments (A1 to A10); each assignment
is worth 5% of the overall course grade. You will also have to solve two set
math review exercises at the beginning of the semester (M0M1), worth 10% of
your grade. Each student should complete the programming assignments
independently; any duplicated work will be considered cheating, independent of
who copied whom.
o (30%) Final Exam. There will be a final worth 30% of
the overall course grade. The final exam will cover the cumulative material
seen in the course during the term.
The final grade for the course is based on our best assessment of
your understanding of the material and your commitment and participation. The
problem sets and a final project are combined to give a final grade:
ACTIVITIES 
Weight 
Project 
40% 
Labs (10 x 5%) 
50% 
Math Problems (2 x 5%) 
10% 
o
(60%) Programming Assignments. Most
of the coursework is centred around ten programming assignments (A1 to A10);
each assignment is worth 5% of the overall course grade. You will also have to
solve two set math review exercises at the beginning of the semester (M0M1),
worth 10% of your grade. Each student should complete the programming
assignments independently; any duplicated work will be considered cheating,
independent of who copied whom.
o (40%) Final Project. There will be a final project 40% of the overall course grade. The final project will be a video game project with documentation.
Lab 1 
My First OpenGL Program 
Lab 2 
Shading Geometry Using Modern OpenGL 
Lab 3 
Controlling Virtual Camera with the
Mouse 
Lab 4 
Playing with
Normal and Texture Mapping 
Lab 5 
Processing Bunny Pointcloud
Using Open3D 
Lab 6 
Performing Radiometric Rendering on
the Bunny 
Lab 7 
Rendering Bunny with Ray Tracing 
Lab 8 
Exploding the Bunny Using Geometry
Shader 
Lab 9 
Implementing Skeleton Animation 
Lab 10 
Visualising CT Data Using pyVista 
Schedule

Lecture

Topic

Lecture 1

Introduction
Linear Algebra

Overview of graphics, vectors, vector
spaces, linear maps, inner product, norm, L2 inner product, span, basis,
orthonormal basis, GramSchmidt, frequency decomposition, systems of linear
equations, matrices

Lecture 2

Vector Calculus

Euclidean inner product, cross
product, matrix representations, determinant, triple product formulas,
differential operators, directional derivative, gradient, differentiating
matrices, differentiating functions, divergence, curl, Laplacian, Hessian,
(multivariable) Taylor series

Lecture 3

Coordinate Spaces and
Transformations

The basic math of spatial
transformations and coordinate spaces

Lecture 4

Perspective Projection and
Rasterization

Understanding perspective projection, drawing a line, coverage testing
as sampling a 2D signal, performing pointintriangle tests

Lecture 5

Depth and Transparency

Interpolation using barycentric coordinates,
occlusion via the depth buffer, alpha composition, use of premultiplied
alpha, the graphics pipeline and modern GPUs

Lecture 6

Texture Mapping and Supersampling

Sampling and challenges of aliasing, supersampling,
perspective correct interpolation, and texture mapping using the mipmap

Lecture 7

3D Transformations and Complex
Representations

3D rotations, commutativity of
rotations, 2D rotation matrix, Euler angles, rotation from axis/angle,
complex numbers, quaternions, quaternion rotation

Lecture 8

Intro to Geometry

implicit and explicit
representations, geometric data structures, smooth surfaces, manifold
condition, manifold polygon mesh, surfaces with boundary, polygon soup,
incidence matrices, halfedge data structure, local
mesh operations, subdivision modeling

Lecture 9

Geometry Processing

surface reconstruction, upsampling, downsampling,
resampling, filtering, compression, shape analysis, remeshing, mesh quality,
subdivision, CatmullClark scheme, Loop scheme, iterative edge collapse,
quadric error metric, minimizing a quadratic form, Delaunay flipping,
Laplacian smoothing, isotropic remeshing, signal degradation

Lecture 10

Geometric Queries

distance queries, pointtotriangle,
definition of a ray, raysphere intersection, raytriangle intersection,
triangletriangle intersection

Lecture 11

Other Geometric Representations

implicit and explicit geometric representations,
CSG, distance fields, level sets, fractals, Bezier curves and patches, NURBS,
subdivision

Lecture 12

Spatial Data Structures

acceleration via bounding volume
hierarchies and space partitioning structures

Lecture 13

Colour

tristimulus nature of color
perception, XYZ primaries, luminance vs. brightness, color spaces

Lecture 14

Radiometry

radiometric quantities and units, photometry,
radiometry integrals, how real cameras work

Lecture 15

Rendering

the rendering equation, the
importance of indirect illumination, path tracing

Lecture 16

Numerical Integration

quadrature, sampling distributions,
basic Monte Carlo integration, ray tracing vs. rasterization, expected value,
variance, law of large numbers, importance sampling

Lecture 17

Monte Carlo Rendering

local vs. global illumination, Monte Carlo
integration, importance sampling, direct lighting estimate, cosine weighting,
path tracing, Russian roulette

Lecture 18

Variance Reduction

Monte Carlo integration, expected
value, variance, continuous random variables, variance reduction, bias and
consistency, path space formulation of light transport, importance sampling,
bidirectional path tracing, MetropolisHastings
algorithm, multiple importance sampling, sampling patterns, stratified
sampling, lowdiscrepancy sampling, Hammersley and Halton sequences, blue
noise, Poisson disk sampling, Lloyd relaxation, alias table, photon mapping,
finite element radiosity

Lecture 19

Introduction to Animation

history of (computer) animation,
splines, natural splines, cubic Hermite/Bezier, Bsplines, interpolation,
keyframing, rigging, skeletal animation, inverse kinematics, blend shapes

Lecture 20

Dynamics and Time Integration

Physicallybased animation, Newton's
2nd law of motion, generalized coordinates, ordinary differential equations
(ODE), Lagrangian mechanics, EulerLagrange
equations, pendulum/double pendulum, nbody systems, massspring systems,
particle systems, flocking, crowds, particlebased fluids, granular
materials, molecular dynamics, hair simulation, numerical integration,
forward/backward/symplectic Euler, stability
analysis

Lecture 21

Introduction to Optimization

Continuous vs. discrete optimization,
standard form of an optimization problem, local vs. global minima, existence
and uniqueness of solutions, convex optimization, descent methods, gradient
descent, Newton descent, kinematic chains, inverse kinematics

Lecture 22

Physically Based Animation and PDEs

PDEs in computer graphics, defintion of a PDE, order and linearity, model equations
(elliptic/parabolic/hyperbolic), Laplace equation, heat equation, wave
equation, numerical solution of PDEs, Lagrangian
and Eulerian discretization, the Laplace operator, discrete Laplacian, Jacobi
method

Lecture 23

Character Animation

Definition of character control, PD
controllers, postural control, balance control, parameters of a walking
controller, inverted pendulum model for stepping, quadrupedal gaits, gait
charts, parameters of a quadrupedal gait controller, applications of
character simulation and control, character animation with sampling, muscle
models, and motion capture, character performance

Lecture 24

Final Review


Recommended Reference
Books There is no required textbook, though a variety
of books may provide good supplementary material: o Steve Marschner and Pete Shirley o Fundamentals
of Computer Graphics. A K Peters, 2021 o John F. Hughes, Andries van Dam, Morgan McGuire, David F. Sklar, James
D. Foley, Steven K. Feiner, and Kurt Akeley o Computer
Graphics: Principles and Practice o Matt Pharr and Greg Humphreys o Physically
Based Rendering: From Theory to Implementation o The book (PBRT) is for learning about modern ray tracing techniques.
It has an online website with complete source code for an advanced physicallybased ray tracer. The textbook is online as well. o How to
Install Python on Windows 