- Textbook: Chapter 1
- Applications
- Brief history
- Research areas
- Class organization
*Self-Study:*Basic math

Textbook, On-line Appendix- Textbook: Chapter 2, 4.7
- Drawing and graphics pipeline
- Modelling a tetrahedron
- Projections from 3D to 2D
- Rasterization
- Animations
- Game or Rendering Engines, Graphics API, Low-level APIs
- Three.js, OpenGL (ES) and WebGL
- Programmable pipeline
- Drawing a triangle (yeah!)
- Textbook: Chapter 2; WebGL Guide
- Textbook: Chapter 4.1
- Why spatial transformations in computer graphics?
- Scaling, shearing and rotation
- Multiple transformations: Matrix composition and decomposition
- Self-Study: Basic linear algebra, Textbook, on-line appendix
- Textbook: Chapter 4.1
- Translations and homogeneous transforms
- 3D Transformation
- Textbook: Chapter 4.2
- Inverse transforms
- Coordinate transforms
- Textbook:
- Scenegraph transforms
- Viewing and canonical viewing volume
- Textbook: Chapter 4.7
- 3D to 2D projection
- Projection matrix
- Camera modelling in WebGL
- Textbook: Chapter
- 2D implicit and parametric curves
- 3D implicit and parametric curves
- 3D parametric surfaces
- Linear interpolation
- Textbook: Chapter 2
- Triangles and Rasterization
- Baricentric coordinates
- Triangle rasterization
- Simple Anti-Aliasing
- Textbook: Chapter 5.1, 5.2, 5.3
- Lighting
- Shading
- Diffuse Shading
- Phong Shading
- Textbook: Chapter 2, 4.1, 4.2, 4.7
- Material covered in class
- No classes, no lab
- Textbook: Chapter 3.1, 3.2, 3.3, 3.5, 3.8, 3.9
- OpenGL/WebGL programs
- Review of vertex pipeline
- Vertex shader
- Loading, compiling and linking a shader
- Setting up vertex attributes
- Sending uniforms
- Drawing calls
- Textbook: Chapter 6.1, 6.2
- Indexed meshes
- 2D texture mapping
- Sphere mapping
- Textbook: Chapters 6.2, 6.3
- 3D texture mapping
- Procedural textures
- Noise textures
- Textbook: Chapters 6.7, 13.7, 10.4, 7.4
- Bump Mapping
- Displacement Mapping
- Environment Mapping
- Shadow Mapping
- Textbook: Chapter 17.1
- Subdivision
- Bernstein-Bezier formula
- De Casteljau algorithm
- Textbook: Chapter 17.1
- Canonical form, constraint and basis matrix
- Catmull-Rom splines
- B-splines
- Textbook: Chapter 17.2, 17.4, 17.5
- Bi-linear patches
- Bezier surfaces
- Loop subdivision
- Motivation and goals
- Particle systems
- Time stepping and basic equations
- ODE solvers
- Textbook: Chapter 11.2
- Basic algorithm
- Eye and shadow rays
- Acceleration data structures
- Commercial ray tracers
- Spatial data structures
- Binary Space Partioning tree
- Z-buffer
- Perspective correct texture mapping
- Clipping
- Textbook: Chapter 8.1
- Brief overview of human vision
- CIE Tristimulus Values
- Chromaticity and Luminance
- RGB Colours and Colour Manipulation

## Introduction |
## January 8, 2024 |

## Drawing and Animation |
## January 10, 2024 |

## Introduction to OpenGL, WebGL and Three.js |
## January 15, 2024 |

## Transformations in 2D |
## January 17, 2024 |

## Transformations in 3D |
## January 22, 2024 |

## Coordinate Transformations |
## January 24, 2024 |

## Scenegraph and Viewing Transformations |
## January 29, 2024 |

## Camera Modelling |
## January 31, 2024 |

## Curves and Surfaces |
## February 5, 2024 |

## Triangle Rasterization and Line Drawing |
## February 7, 2024 |

## Shading |
## February 12, 2024 |

## Midterm |
## February 14, 2024 |

## Reading Week |
## February 19-23, 2024 |

## Vertex Pipeline Review |
## February 26, 2024 |

## Meshes and 2D Texture Mapping |
## February 28, 2024 |

## 3D Texture and Noise |
## March 4, 2024 |

## More Texturing Techniques |
## March 6, 2024 |

## Bezier Curves |
## March 11, 2024 |

## Splines |
## March 13, 2019 |

## Spline Surfaces |
## March 18, 2024 |

## Physics-based Rendering |
## March 20, 2024 |

## Ray Tracing |
## March 25, 2024 |

## Spatial Data Structures and Pipeline |
## March 27, 2024 |

## Colour and Illumination |
## April 3, 2024 |

## Project Presentations and Review |
## April 8, 2024 |