This page holds videos of lectures by Sam Buss
for Math 155A at UC San Diego,
recorded in Fall 2020 during the campus
Covid closures. The videos are accompanied with
shots of the whiteboards — to see these click
on the thumbnail image. For convenience, videos are available from
two sources: a YouTube channel and from an archive
on google drive (the two versions are identical).
If there are technical problems with the page, please let me know
at sbuss@ucsd.edu.
1.1. Introduction to OpenGL and GPU's. (10 minutes)
1.2. Points, Lines and Triangles. (25 minutes).
1.3. Culling, Hidden Surfaces and Animation. (30 minutes).
2.1. Introduction to Shaders. (28 minutes)
2.2. SimpleDrawModern program example. (21 minutes)
2.3. Flat and smooth shading. (9 minutes)
2.4. Vertex attributes and uniform variables. (19 minutes)
2.5. Element Buffer Objects - glDrawElements. (13 minutes)
3.1. OpenGL pipeline; Linear and affine transformations. (22 minutes)
3.2. Visualizing transformations. (14 minutes)
3.3. Matrix representations; rotations. (18 minutes)
3.4. Inverses. (12 minutes)
3.5. Composition and Generalized Rotations. (16 minutes)
3.6. Homogeneous Coordinates, Affine Matrix Representations. (17 minutes)
3.7. Hierarchical Transformations - Example in R2 . (19 minutes)
4.1. Moving to R3 - Introduction. (25 minutes)
4.2. Solar System - example. (24 minutes)
4.3. Rigid and orientation preserving maps. (15 minutes)
4.4. Rigid and orientation preserving in R2 . (20 minutes)
4.5. Euler's Theorem: Rigid and orientation preserving in R3 . (16 minutes)
4.6. Center of a generalized rotation. (9 minutes)
4.7. Teapot demo. (5 minutes)
4.8. Derivation of the rotation matrix in R3 . (34 minutes)
4.9. Alternative view of compositions. (11 minutes)
5.1. Projection transformations and the OpenGL pipeline. (16 minutes)
5.2. Orthographic projections. (12 minutes)
5.3. Perspective: Part I. (18 minutes)
5.4. Shadows with projection transformations. (13 minutes)
5.5. Perspective: Part II (Pseudodist). (24 minutes)
5.6. glFrustum and gluPerspective. (13 minutes)
5.7. Points at infinity and projective space. (20 minutes)
5.8. Perspective transformations, depth, and interpolation. (24 minutes)
6.1. Phong lighting - First introduction. (17 minutes)
6.2. Phong lighting: Inputs and outputs, ambient, diffuse. (26 minutes)
6.3. Phong lighting: Specular light. (21 minutes)
6.4. Fresnel specularity with Schlick approximation. (10 minutes)
6.5. Distance attenuation and spotlights. (14 minutes)
6.6. Multiple lights. (10 minutes)
6.7. Gouraud and Phong interpolation. (17 minutes)
7.1. Surface normals - Introduction. (10 minutes)
7.2. Normals for parameteric surfaces. (16 minutes)
7.3. Normals for implicitly defined surfaces. (8 minutes)
7.4. Transformations of normals. (24 minutes)
7.5. Calculating normals for a surface of revolution. (23 minutes)
8.1. Linear Interpolation (Lerp-ing). (11 minutes)
8.2. Affine combinations and weighted averages. (12 minutes)
8.3. Barycentric coordinates. (15 minutes)
8.4. Area interpretation of barycentric coordinates. (18 minutes)
8.5. Vector method for barycentric coordinates. (13 minutes)
8.6. Visualizing barycentric coordinates. (6 minutes)
8.7. Bilinear interpolation. (11 minutes)
8.8. Interpolating and extrapolating. (15 minutes)
8.9. Convex sets. (9 minutes)
9.1. Texture maps: introduction. (24 minutes)
9.2. Texture maps: bilinear interpolation and mipmaps. (24 minutes)
9.3. Stochastic supersampling. (16 minutes)
9.4. Texture maps in OpenGL. (21 minutes)
9.5. Cube maps. (11 minutes)
9.6. Bump maps. (13 minutes)
9.7. Hyperbolic Interpolation. (25 minutes)
10.1. Color perception. (17 minutes)
10.2. Color representation. (22 minutes)
10.3. Hue. (14 minutes)
11.1. Bezier curves of degrees 1, 2 and 3. (24 minutes)
11.2. Particle motion with a Bezier curve. (14 minutes)
11.3. De Casteljau algorithm. (15 minutes)
11.4. Recursive subdivision. (21 minutes)
11.5. Circular arcs with rational Bezier curves. (30 minutes)
11.6. Piecewise degree 3 Bezier curves. (19 minutes).
11.7. Catmull-Rom interpolating curves. (17 minutes)