1 About This Course

Computer graphics studies how computers can create images. Interactive computer graphics creates images quickly enough that a new image can be created in response to every user action. In principle any image-creation algorithm could be interactive, given adequate hardware, but in practice it usually refers to a specific family of workflows involving the interaction of the CPU and GPU. That family of workflows will be our primary topic in this class.

Course content in computer graphics is often misunderstood; see the following table for an overview of what we do and do not cover in this class.

Topic Covered in CS 418?
WebGL Yes
OpenGL, Direct3D, Metal, Vulkan Not directly, but much of WebGL will transfer over to these
Animation The tech, but not the artistry
Special effects Some, but it’s not the main topic
Game design No; try CS 415 or any GSD course. We will discuss the graphics behind 3D games, though.
Movie-quality graphics That comes in the next course, CS 419. This course is a prereq for that course.
Computer vision No; try CS 444 and related classes
Use of Allegro, Banshee, C4, CryEngine, Intrinsic, OGRE, SDL, Serious, Source, Torque, Unity, Unreal, UX3D, Xenko, XNA, … No; we may discuss how they are built, but not how to use them.
Use of A:M, Blender, 3DS Max, Maya, Nendo, Rhino, SketchUp, Wings, XSI, ZBrush, … No; try ARTS 340.
How to build tools like Gimp, Krita, No; try CS 445

2 Prerequisites

Listed prereqs in the course catalog are

CS 225 Data Sructures

Needed primarily for the common vocabulary it provides as we discuss graphics-specific structures, and for the programming experience it provides.

We’ll have some assignments where you may use any programming language you want and some where you’ll use Javascript and GLSL. I assume you don’t know Javascript or GLSL already, so we’ll provide instruction as needed on those languages.

A linear algebra class

Matrices and vectors are all over computer graphics. We’ll use vectors to represent 3D points and matrices to transform them. We’ll use vectors to represent long lists of properties of a point. We’ll explain the details of these uses, but assume you have a working knowledge of matrices and vectors coming in.

Graphics also use large sparse matrices to represent physical constraints and iterative solvers (primarily variants of conjugate gradient) to create visual simulations of real-world dynamics. That is rarely achievable at interactive speeds, so we won’t talk about it in any detail in this class.

MATH 241 Calculus III

Euclidean space and the vectors used to represent it are important in graphics. Additionally, taking this course usually helps students think in 3D a bit more than they had before, which is useful.

There is some calculus in graphics, but mostly as theoretic background for algorithms that do not themselves use the calculus. We’ll not need any integral-solving or related by-hand calculus computations in this course.

3 Course Staff

Instructor
Name Luther Tychonievich
Office 2340 Siebel Center
Phone not yet assigned
Email luthert@...
Include 418 or graphics in the subject line
Assistants
None yet

4 Textbook

We have no official textbook for this course. Some readings will be the work of Luther Tychonievich and Eric Shaffer, the two faculty who teach CS 418. Others will be tutorials or articles available on the web.