1
Mon, 31 Aug
What graphics is (and isn't); setup; first pixels & gradients
slides finger ex. readings Shirley ch. 1 Introduction: what graphics covers, the pipeline in one page, and §1.7 on writing graphics code. Read before class. Shirley §3.1–3.2 Raster devices; images, pixels and geometry. How a pixel grid maps to coordinates — we use this convention all semester. RTiOW §2 Output an Image Writes a PPM file and fills it with a gradient. Exactly what we do in the first finger exercise. Alvy Ray Smith 1995 "A Pixel Is Not a Little Square", Microsoft tech memo. Short and optional. Why a pixel is a sample, not a tile.
—
—
2
Wed, 2 Sep
Bresenham's line algorithm
slides finger ex. readings Shirley §9.1.1 Line Drawing: the midpoint algorithm, which is Bresenham's in modern clothes. Read before class. Bresenham 1965 "Algorithm for computer control of a digital plotter", IBM Systems Journal 4(1). The original. Four pages; read after the lecture. Foley et al. §3.2 Scan-converting lines, including the all-octant case and the incremental error argument. Optional, deeper.
—
—
3
Fri, 4 Sep
Color & alpha; primitives; fills (inside-test, flood fill)
slides finger ex. readings Shirley §3.3–3.4 RGB colour and alpha compositing. Read before class; the over operator is the one you implement. Porter & Duff 1984 "Compositing Digital Images", SIGGRAPH '84. Where premultiplied alpha and the over operator come from. Skim §2–3. Shirley §9.1.2 Triangle Rasterization: the inside-test via barycentric coordinates, and the edge-function form we use for primitives. Alvy Ray Smith 1979 "Tint Fill", SIGGRAPH '79. The original flood-fill paper. Optional; the algorithm is two paragraphs.
A1 student submissions
4
Mon, 7 Sep
Vectors & the dot product
slides finger ex. readings Shirley §2.4–2.4.3 Vectors, vector operations, Cartesian coordinates, and the dot product. Read before class. Shirley §2.3.1–2.3.3 Angles, trig functions and the identities we lean on. Refresher; skim if you are comfortable.
—
—
5
Wed, 9 Sep
Parametric lines, circles, ellipses
slides finger ex. readings Shirley §2.7.6 2D Parametric Curves: p(t) = ... for lines and circles, and why we prefer the parametric form for drawing. Shirley §2.7.1–2.7.2 2D Implicit Curves and the gradient. The other way to write a circle; you need both. Shirley §2.8 Linear Interpolation. One page — but lerp is used in every lecture from here on.
—
—
6
Fri, 11 Sep
Bezier curves; de Casteljau
slides finger ex. readings Shirley §15.6.1 Bézier Curves: control points, the Bernstein form, and the de Casteljau algorithm (Figure 15.16). Read before class. Shirley §15.1–15.2 Curves and curve properties: parameterisation and continuity. Background for why Bézier segments join the way they do. Pomax, A Primer on Bézier Curves Interactive, free. Read the 'de Casteljau' and 'Bernstein form' chapters and play with the widgets.
A2 student submissions
7
Mon, 14 Sep
2x2 matrices: rotation, scale
slides finger ex. readings Shirley §6.1–6.2.4 Determinants, matrices, matrix arithmetic, vectors as columns, and the special matrices (identity, transpose, orthogonal). The determinant is the geometry behind next lecture's inverse — and behind A3's singular-matrix guard. Shirley §7.1–7.1.3 2D Linear Transformations: scaling, shearing, rotation as 2×2 matrices. Read before class.
—
—
8
Wed, 16 Sep
Homogeneous coordinates; composition & order
slides finger ex. readings Shirley §7.3 Translation and Affine Transformations: why homogeneous coordinates exist. The core of this lecture — read for the w coordinate specifically: a point carries w = 1 and moves under translation, a direction carries w = 0 and does not. Shirley §7.1.5 Composition and Decomposition of Transformations: order matters, and what each order means. The pivot sandwich (translate, rotate, translate back) is this section applied three times. Shirley §6.3–6.3.1 Computing with Matrices and Determinants, and Computing Inverses: where the 2×2 inverse formula comes from, and why a zero determinant leaves you with nothing to divide by. Shirley §7.4 Inverses of Transformation Matrices: the shortcut inverse of each named transform (negate the translation, transpose the rotation), which is cheaper than the general formula whenever you know what you built.
—
—
9
Fri, 18 Sep
Reference frames & the scene graph
slides finger ex. readings Shirley §2.4.5 Orthonormal Bases and Coordinate Frames: a frame is an origin plus basis vectors. Shirley §7.5 Coordinate Transformations: converting between frames is a matrix, and which way round it goes. Shirley §12.2 Scene Graphs: a tree of frames, and how the matrix stack falls out of it (§12.2.2 for ray tracing). Shirley §12.1–12.1.1 Triangle Meshes and mesh topology — one page, for the triangle fan that fills a polygon. We return to this properly in lecture 24. Lasseter 1987 "Principles of Traditional Animation Applied to 3D Computer Animation", SIGGRAPH '87. Where ease-in/ease-out, follow-through and secondary action come from. Optional, and the best three pages you can read before animating anything.
A3 student submissions
10
Mon, 21 Sep
Rays: p = o + t*d; marching & nearest hit
slides finger ex. readings Shirley §2.7.6–2.7.7 Parametric lines in 2D and 3D: p(t) = o + t d, and what t means. Re-read. Shirley §4.1 The Basic Ray-Tracing Algorithm, one page: for each pixel, find the nearest hit. RTiOW §4.1 The ray Class The two-line ray class we mirror in Python.
—
—
11
Wed, 23 Sep
2D light & shadow: fan of rays, occluders
slides finger ex. readings Shirley §4.5.1 Light Sources: point lights, and what a light contributes at a point. Shirley §4.5.3 Shadows: a point is lit if the ray towards the light hits nothing first. Two-dimensional in class, same idea.
—
—
12
Fri, 25 Sep
Exact ray-segment intersection; 2D soft shadows
slides finger ex. readings Shirley §2.7.6 (lines) Two parametric lines intersect where their parameters agree: a 2×2 linear system. Set it up before class. Shirley §6.3.2 Linear Systems: Cramer's rule is the fastest way to solve that 2×2. You met §6.3 at lecture 8 for the inverse; this is the other half of it. Cook, Porter & Carpenter 1984 "Distributed Ray Tracing", SIGGRAPH '84. §2 on soft shadows from area lights. Optional now; we return to it in lecture 21.
—
13
Mon, 28 Sep
3D vectors; cross product; the camera
slides finger ex. readings Shirley §2.4.4–2.4.7 Cross Product, orthonormal bases, and constructing a basis from one or two vectors — the camera frame. Shirley §4.2–4.3 Perspective, and Computing Viewing Rays for orthographic and perspective cameras. Read before class. RTiOW §4 Rays, a Simple Camera, and Background The same camera, built in code.
—
—
14
Wed, 30 Sep
Ray-sphere intersection
slides finger ex. readings Shirley §4.4.1 Ray-Sphere Intersection: substitute the ray into the implicit sphere, solve the quadratic. Read before class. Shirley §2.2 Solving Quadratic Equations, and the numerically stable form. Short. RTiOW §5–6.2 Adding a Sphere, and simplifying the intersection code.
—
—
15
Fri, 2 Oct
Multi-object scenes; nearest hit; antialiasing
slides finger ex. readings Shirley §4.4.4 Intersecting a Group of Objects: keep the smallest positive t. RTiOW §6.3–6.5 An abstraction for hittable objects and a list of them — the scene structure you build in A5. RTiOW §8 Antialiasing Many jittered samples per pixel, averaged. Read before class.
A4 due A5 released
—
16
Mon, 5 Oct
Normals; diffuse (Lambert) shading; point lights
slides finger ex. readings Shirley §4.5–4.5.2 Shading: light sources and shading in software. Shirley §5.1–5.2.1 Point-like light sources and Lambertian reflection: the cosine law, derived. Read before class. RTiOW §6.1, §9 Shading with surface normals, then diffuse materials and gamma correction.
—
—
17
Wed, 7 Oct
Shadow rays; reflection & metal
slides finger ex. readings Shirley §4.5.3–4.5.4 Shadows and Mirror Reflection: the shadow ray, the epsilon offset, and the reflected direction. Read before class. Shirley §5.2.2 Specular reflection: the highlight model we add next to the mirror term. RTiOW §10 Metal Mirrored and fuzzy reflection as a material class.
—
—
18
Fri, 9 Oct
Refraction & glass (Snell); recursive rays
slides finger ex. readings Shirley §14.3–14.3.2 Smooth Dielectrics: reflectivity of a dielectric (Fresnel, Schlick), refraction and Beer's law. Read before class. RTiOW §11 Dielectrics Snell's law, total internal reflection, the Schlick approximation, and the hollow glass sphere. RTiOW §9.2 Limiting the number of child rays — the recursion depth you must cap.
A5 due A6 released
—
19
Mon, 12 Oct
Why ray tracing is slow; acceleration ideas
slides finger ex. readings Shirley §12.3 (opening) Spatial Data Structures: why testing every ray against every object is hopeless, and the three ways out. RT Next Week §3.1–3.2 Bounding Volume Hierarchies: the key idea, and hierarchies of bounding volumes. Shirley §1.6 Efficiency: the one-page argument for measuring before optimising. Re-read.
—
—
20
Wed, 14 Oct
Building a BVH: AABBs, slab test, traversal
slides finger ex. readings Shirley §12.3.1–12.3.2 Bounding Boxes and Hierarchical Bounding Boxes: the slab test and BVH traversal. Read before class. RT Next Week §3.4–3.8 Ray intersection with an AABB, building boxes for hittables, the BVH node class, and splitting.
—
—
21
Fri, 16 Oct
Distribution ray tracing: soft shadows, depth of field
slides finger ex. readings Cook, Porter & Carpenter 1984 "Distributed Ray Tracing", SIGGRAPH '84. The paper that turned every ray into a random sample: soft shadows, depth of field, motion blur. Read before class. RTiOW §13 Defocus Blur The thin-lens camera: sample the aperture, focus on a plane. Shirley §14.5.3 Motion and Defocus Blur, in one page.
A6 due A7 released
—
22
Mon, 19 Oct
Render show-and-tell; midterm review
slides finger ex.
—
—
—
Wed, 21 Oct
Midterm
exam paper
—
—
Fri, 23 Oct
Fall Break
A7 due (midterm scene)
—
23
Mon, 26 Oct
Ray-triangle intersection; barycentric coordinates
slides finger ex. readings Shirley §2.9–2.9.2 Triangles and barycentric coordinates in 2D and 3D. Read before class. Shirley §4.4.2 Ray-Triangle Intersection: solve for (t, β, γ) with Cramer's rule, then test the barycentrics. RT Next Week §6 Quadrilaterals Ray-plane intersection and interior testing with planar coordinates — the same idea for quads. Optional.
—
—
24
Wed, 28 Oct
Meshes & the OBJ format; loading real models
slides finger ex. readings Shirley §12.1–12.1.2 Triangle Meshes, mesh topology, and indexed mesh storage — which is exactly what an OBJ file is. Bourke, Wavefront OBJ file format The reference for v / vn / vt / f lines. Read the first two pages; the rest is for the curious. Shirley §7.2.2 Transforming Normal Vectors: why normals do not transform like points. Needed once you place a mesh.
—
—
25
Fri, 30 Oct
Light & radiometry: flux, irradiance, radiance, solid angle
slides finger ex. readings Shirley §14.6–14.6.4 Radiometry: spectral energy, power, irradiance, radiance. Read before class, slowly. Shirley §2.3.4 Solid Angles and Spherical Trigonometry: the steradian, and integrating over a hemisphere. Shirley §2.5.2 Integrals over solid angle. One page.
A8 released
—
26
Mon, 2 Nov
The rendering equation & BRDFs
slides finger ex. readings Shirley §14.7–14.8 Radiometry of Scattering (the BRDF) and the Transport Equation. Read before class. Kajiya 1986 "The Rendering Equation", SIGGRAPH '86. The original statement. Read §1–2; the rest is history. Shirley §14.9 Materials in Practice: what real BRDFs look like. Skim.
—
—
27
Wed, 4 Nov
Monte Carlo integration; path tracing, emissive materials
slides finger ex. readings Shirley §13.3 Monte Carlo Integration: the estimator, its variance, and why it converges as 1/√N. Read before class. Shirley §14.10 Monte Carlo Ray Tracing: the path tracer in a page. RT Rest of Life §2–3 A simple Monte Carlo program (estimating π) and one-dimensional Monte Carlo integration. RT Next Week §7 Lights Emissive materials, and turning objects into lights.
—
—
28
Fri, 6 Nov
Importance sampling; the path tracer in practice
slides finger ex. readings Shirley §2.12.1, §13.4.1 Importance Sampling, and choosing random points by function inversion. Read before class. RT Rest of Life §3.7, §6 Importance sampling in 1D, then playing with it in the Cornell box. RT Rest of Life §9–10 Sampling lights directly, and mixture densities — the two tricks that make the A9 path tracer converge.
A8 due A9 released
—
—
Mon, 9 Nov
Iqbal day
—
—
29
Wed, 11 Nov
Real-time: input -> update -> draw, every frame
—
—
30
Fri, 13 Nov
The GPU; the programmable pipeline; the depth buffer
slides finger ex. readings Shirley §17.1–17.4 Hardware overview, what graphics hardware is, and buffers, state and shaders. Read before class. Shirley §9.2.2–9.2.3 A Minimal 3D Pipeline, and the z-buffer for hidden surfaces. Shirley §9.4.2 Backface Culling. Half a page.
A9 due A10 released
—
31
Mon, 16 Nov
Hello triangle (ModernGL, GLSL)
slides finger ex. readings Shirley §17.6–17.10 Application layout, geometry, a first look at shaders, vertex buffer objects and vertex array objects. Read before class. LearnOpenGL Hello Triangle The canonical first program; ModernGL wraps exactly these calls. ModernGL documentation Start with the 'Getting started' page and the triangle example.
—
—
32
Wed, 18 Nov
Fragment shaders: color = f(x,y) per pixel
—
—
33
Fri, 20 Nov
Shadertoy: SDFs & raymarching
slides finger ex. readings Quilez Distance functions The catalogue of signed distance functions for primitives, with GLSL. Read before class. Quilez Raymarching distance fields Sphere tracing: step by the distance, stop when close. The whole technique in one page. Shirley §21.1–21.2 Implicit Modeling: skeletal primitives, blending, and rendering implicit surfaces. Optional background.
—
—
34
Mon, 23 Nov
3D on the GPU: the MVP chain; perspective
slides finger ex. readings Shirley §8.1–8.3 Viewing transformations, projective transformations, and perspective projection. Read before class. Shirley §17.11 Transformation Matrices on the hardware: uniforms, GLM, and the orthographic example. LearnOpenGL Coordinate Systems Model, view, projection, and clip space, with pictures.
—
—
35
Wed, 25 Nov
Blinn-Phong lighting; textures & UV mapping
slides finger ex. readings Shirley §5.2.2–5.2.3 Specular reflection (Blinn-Phong) and calculating shading. Read before class. Shirley §17.13.1–17.13.2 The Blinn-Phong shader program: vertex and fragment shaders. Shirley §11.1–11.2.2, §17.15 Looking up texture values, texture coordinates, and texture objects on the hardware. LearnOpenGL Textures Loading an image and sampling it with UVs.
—
—
36
Fri, 27 Nov
Final-project kickoff; idea pitches
slides finger ex. readings Shirley §1.7 Designing and Coding Graphics Programs: class design, debugging, and scope. Read before you pitch. Shirley §22.5 The Game Production Process: how a small team scopes a project. Optional.
A10 due A11 released; Proposal assigned
—
37
Mon, 30 Nov
Project lab: scoping check-ins
slides finger ex.
Proposal due
—
38
Wed, 2 Dec
Lab: interactive 3D scene
slides finger ex.
—
—
39
Fri, 4 Dec
Shadow mapping: depth buffer, two-pass rendering
slides finger ex. readings Shirley §11.4.4 Shadow Maps: render depth from the light, then compare. Read before class. LearnOpenGL Shadow Mapping The two-pass implementation, plus bias and PCF for the artefacts you will hit. Williams 1978 "Casting curved shadows on curved surfaces", SIGGRAPH '78. The original. Optional.
A11 due
—
40
Mon, 7 Dec
Graphics meets AI: NeRFs, Gaussian splatting
slides finger ex. readings Mildenhall et al. 2020 "NeRF: Representing Scenes as Neural Radiance Fields for View Synthesis", ECCV 2020. Read §1, §3–4: it is volume rendering plus a network. Kerbl et al. 2023 "3D Gaussian Splatting for Real-Time Radiance Field Rendering", SIGGRAPH 2023. Read §1 and §4–6; note how much is classic rasterisation. Shirley §14.5 A Brute Force Photon Tracer: the forward-rendering picture that both papers invert. Optional.
—
—
41
Wed, 9 Dec
Course review & exam prep
slides finger ex. readings Shirley ch. 4, ch. 7 Ray Tracing and Transformation Matrices, re-read end to end. Everything else in the course hangs off these two chapters. Shirley §9.2, §17.4 The pipeline and the hardware model, for the real-time half.
Final project due after the exam period
—
—
Thu, 10 Dec
Final Exams
exam paper
—