CISC 454/3.0 Computer Graphics

Original author: James Stewart
Last Revised: September 25, 2006

Calendar Description

Introduction to computer graphics, including a review of current hardware; modelling and transformations in two and three dimensions; visual realism: perspective, hidden surface elimination, and shading; colour models; applications in several fields.

Prerequisites: CISC 235/3.0, a 1st year course in Linear Algebra, third- or fourth-year standing.


This course provides the mathematical and algorithmic background necessary to write computer graphics applications. It covers the linear algebra and calculus needed to manipulate and render 3D objects. It covers the common data structures and algorithms used for modelling, rendering, and animation. Finally, some advanced topics are discussed to give a taste of what's currently going on in graphics research.


History; raster/vector graphics; display devices; OpenGL API and examples; linear and vector algebra review

Meshes, hierarchies, CSG; affine transformations; viewing transformations; homogeneous coordinates; flat and smooth shading

Keyframing & linear interpolation; linear blending functions; Catmull-Rom curves; linked structures; dynamics; scripting; inverse kinematics

Pipeline; segment and polygon rasterization; segment and polygon clipping

Texture Mapping
perspective-correct interpolation; environment maps; bump maps; Mip maps; procedural textures

Local Illumination
Colour models; ambient, diffuse, and specular reflections; light and material properties; shading models: Gouraud, Phong, Cook-Torrance; BRDFs

Ray tracing
ray/object intersection; Barycentric coordinates; backward ray tracing; bias in ray tracing; antialiasing; shadows; glossiness; motion

Volume Rendering
ray casting; texture-based methods in hardware; transfer functions

Painter and Z-buffer algorithms; binary space partitions; potentially visible sets

Possible Texts

  • Watt, "3D Computer Graphics", Addison Wesley, 1999.

  • Angel, "OpenGL A Primer", Addison Wesley, 2004. This contains a good introduction to using OpenGL, with lots of code examples.

  • Shreiner, Woo, Neider, and Davis, "OpenGL Programming Guide: The Official Guide to Learning OpenGL", Addison-Wesley Professional, 2005. This gives a detailed reference to OpenGL and is probably only useful to those who intend to do a lot of OpenGL programming beyond what is covered in the course.