Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science University of New Mexico angel@cs.unm.edu www.cs.unm.edu/~angel This course was taught as an online course in 2014 using the 7th Edition. The times following each lecture name are the times of videos I created for that lecture. Those videos are available on the 7E website. I've updated the lectures so the code uses WebGL 2.0 and the naming conventions are consistent with 8E. However the videos are unchanged. I've left the ordering of the lectures the same as the ordering of videos. However, the order of topics in the second half of 8E is not the same as in 7E. Consequently I've updated the reading assignments to be consistent with 8E. Text: Interactive Computer Graphics, 8th Edition, E. Angel and D. Shreiner, Pearson Education, 2020 Week 1: Introduction and Overview Angel_8E_1_1: Course Overview (24:21) Angel_8E_1_2: Course Outline (22:24) Angel_8E_1_3: Sample WebGL Program (34:31) Angel_8E_1_4: History of Computer Graphics (26:48) Angel_8E_1_5: Image Formation (28:43) Reading: Chapter 1 Week 2: Introduction to WebGL Angel_8E_2_1: Models and Architecture (30:56) Angel_8E_2_2: WebGL Background: History of Graphics SoftwareÊ (27:27) Angel_8E_2_3: WebGL Basics (19:48) Angel_8E_2_4: A Complete Program (33:53) Angel_8E_2_5: Discussion and First Assignment (17:51) Reading: Chapter 2 Week 3: GLSL and Shaders Angel_8E_3_1: Shaders 1 (15:28) Angel 8E_3_2: Shaders 2 (27:26) Angel_8E_3_3: Colors and Attributes (25:41) Angel_8E_3_4: Reading and Initializing Shaders (11:33) Angel_8E_2_5: Recursive Sierpinski Gasket (12:33) Angel_8E_3_6: Three Dimensions and Hidden Surface Removal (10:06) Reading: Finish Chapter 2 Week 4: Input and Interaction Angel_8E_4_1: Input and Interaction (25:10) Angel_8E_4_2: Animation (17:21) Angel_8E_4_3: Callbacks and Event Listeners (24:34) Angel_8E_4_4: Position Input (22:25) Angel_8E_4_5: Picking (17:24) Angel_8E_4_6: Geometry (35:54) Reading: Chapter 3 Week 5: Geometry and Transformations Angel_8E_5_1: Representation (18:05) Angel_8E_5_2: Homogeneous Coordinates (22:53) Angel_8E_5_3: Transformations (41:12) Angel_8E_5_4: Transformations in WebGL (21:44) Angel_8E_5_5: Applying Transformations (17:53) Angel_8E_E1: Quaternions (26:32) Reading: Chapter 4 Week 6: Modeling and Viewing Angel_8E_6_1: Modeling (16:10) Angel_8E_6_2: Rotating Cube (17:10) Angel_8E_E2: The Virtual Trackball (15:26) Angel_8E_6_3: Classical Viewing (34:54) Angel_8E_6_4: Positioning the Camera (24:27) Angel_8E_6_5: Projection Functions (27:49) Ê Reading: Begin Chapter 5 Week 7: Projection Matrices and Shadows Angel_8E_7_1: Orthogonal Projection Matrices (20:16) Angel_8E_7_2: Perspective Projection Matrices (16:58) Angel_8E_7_3: Meshes (21:49) Angel_8E_7_4: Shadows (24:23) Angel_8E_7_5: Lighting and Shading 1 (39:58) Reading: Finish Chapter 5, begin Chapter 6. Week 8: Lighting and Shading Angel_8E_8_1: Lighting and Shading 2 (23:19) Angel_8E_8_2: Lighting in WebGL (26:47) Angel_8E_8_3: Polygonal Shading (15:22) Angel_8E_8_4: Per Vertex and Per Fragment Shading (17:00) Angel_8E_E3: Marching Squares (25:52) Reading: Chapter 6 Week 9: Buffers and Texture Mapping Angel_8E_9_1: Buffers (24:34) Angel_8E_9_2: BitBlt (16:02) Angel_8E_9_3: Texture Mapping I (14:20) Angel_8E_9_4: Texture Mapping II (16:08) Angel_8E_9_5: WebGL Texture Mapping I (24:41) Angel_8E_9_6: WebGL Texture Mapping II (31:51) Reading: Begin Chapter 7 Week 10: Discrete Techniques Angel_8E_10_1: Reflection and Environment Maps (27:49) Angel_8E_10_2: Bump Maps (19:10) Angel_8E_10_3: Compositing and Blending (30:47) Angel_8E_10_4: Imaging Applications (29:18) Angel_8E_10_5: Rendering the Mandelbrot Set (24:07) Ê Reading: Finish Chapter 8 Week 11: Off-Screen Rendering Angel_8E_11_1: Framebuffer Objects (24:25) Angel_8E_11_2: Render to Texture (15:40) Angel_8E_11_3: Buffer Pingponging (24:46) Angel_8E_11_4: Picking by Color (12:45) Angel_8E_E4: Fractals (21:32) Reading: Finish Chapter 7. Fractals are discussed in Chapter 10. Week 12: Hierarchy Angel_8E_12_1: Hierarchy 1 (26:20) Angel_8E_12_2: Hierarchy 2 (26:25) Angel_8E_12_3: Scene Graphs 1 (23:27) Angel_8E_12_4: Scene Graphs 2 (19:48) Angel_8E_12_5: Rendering Overview (16:27) Reading: Chapter 9 Week 13: Rendering Angel_8E_13_1: Cliipping (30:09) Angel_8E_13_2: Polygon Rendering (37:20) Angel_8E_13_3: Rasterization (32:10) Angel_8E_13_4: Display Issues (42:05) Reading: Chapter 12 Week 14: Curves and Surfaces Angel_8E_14_1: Curves and Surfaces (31:26) Angel_8E_14_2: Designing Parametric Curves (26:39) Angel_8E_14_3: Bezier and Spline Curves and Surfaces (30:48) Angel_8E_14_4: Rendering Curves and Surfaces (27:16) Angel_8E_14_5: Rendering the Teapot (28:51) Reading: Chapter 11 Week 15: Angel_8E_15_1: Global Rendering (30:57) Angel_8E_15_2: Ray Tracing (26:29) Angel_8E_15_3: What's Next (34:54) Reading: Chapter 13