Revised Dec 18, 2015
CS 488: Introduction to Computer Graphics
Watch a video introduction to this course on YouTube.
General description
This course gives students a solid background in 3-D graphics techniques for use as a tool in more advanced applications. A major part of the course involves hands-on activities using an interactive graphics workstation.
Logistics
Audience
- CS major students. Usually taken in fourth year.
Normally available
- Fall, Winter, and Spring
Related courses
- Pre-requisites: (CM 339/CS 341 or SE 240) and (CS 350 or SE 350) and (CS 370 or 371); Computer Science students only
Enrolment may be limited due to availability of graphics equipment.
For official details, see the UW calendar.
Software/hardware used
- Linux
- C++
- OpenGL
Typical reference(s)
- Donald Hearn, P. Baker, W. Carithers, Computer Graphics with Open GL (4th Edition), Prentice Hall, 2010
- Dave Shreiner, The Khronos OpenGL ARB Working Group, OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 3.0 and 3.1, 7th ed., Addison Wesley, 2009
Required preparation
At the start of the course, students should be able to
- Write programs in UNIX with C++
- Use and understand linear algebra, calculus, numerical analysis including numerical linear algebra, data structures, and algorithms
Learning objectives
At the end of the course, students should be able to
- Carry out mathematical constructions on points, vectors, and transformations in affine spaces
- Explain the algorithmic and mathematical concepts used at each stage of a modern graphics pipeline
- Write interactive programs that display and manipulate 2D and 3D geometry
- Write a ray tracer
Typical syllabus
Graphics environment (4 hours)
- Overview of a representative processing sequence that connects application programs with images they display on screen
- Outline of the graphics library students will use and the graphics workstation hardware
Mathematical underpinnings (4 hours)
- Review of concepts and tools: points, vectors, lines, planes, matrices, dot and cross products, vector space, affine space, projective space, etc.
Transformations (4 hours)
- 2- and 3-dimensional translation, rotation, and scaling as matrix operations
- Homogeneous coordinates
- Clipping, windowing, and viewing with perspective
Interrupting, picking, polling, callbacks (10 hours)
- Management of picking, selecting, and control tasks through the use of event queues, interrupts, and device polling
- Windowing systems and user interface toolkits
Hidden surfaces and shading (4 hours)
- Standard lighting models and their implementation
- Hidden-surface elimination using depth buffering, scanline coherence, and subdivision
- Polygon filling
Ray tracing (4 hours)
- Basic ray tracing techniques for generating shadows, mirror reflections, and refraction
- Constructive solid geometry models
Physically based rendering (4 hours)
- Radiosity, bi-directional path tracing, global illumination
Discretionary topics (5 hours)
- Topics are chosen at the discretion of the instructor. Possible topics include more depth on any of the previous topics, human vision, colour theory, anti-aliasing, database amplification, animation, scientific visualization, graphics hardware support, higher-order curves and surfaces, and dynamic simulation.