1 Course Content

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.

A list of learning goals and topics may be found on my.cs.

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 they are enough like WebGL that this course will help with these other APIs too
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. Some sections of BTW 263 discuss their use in more detail.
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, MyPaint, Photoshop, … 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 Participating in this Course

Location 1404 Siebel Center
305 Material Science and Engineering Building (MSEB)
Time Wednesday and Friday, 14:00–15:15 CT
Attendance Ungraded but encouraged
Recordings Posted on the schedule after class

I enjoy very interactive classes. I come with content to present, but prefer to engage with student questions and interests, adapting what we discuss accordingly. This approach is not particularly compatible with detailed slides, so recordings and readings will be the main review material.

Location https://cs418.cs.illinois.edu/quizzes
Released 1–24 hours after Friday’s class
Due 1 hour before Wednesday’s class
Content Based on previous week’s classes and readings
Grading Autograded when due; adjusted by grader in next week
Excused 1 dropped automatically; specific quizzes may be excused if requested prior to the quiz closing
Late Not accepted, not even with prior approval
Weight 25%
Kind Individual (non-collaborative) programming projects
Frequency Varies by assignment difficulty
Details On the schedule
4th Credit Students enrolled for 4 credit hours will implement a raytracer in addition to the normal suite of homeworks
Weight 50%, + 100% of 4th credit
Location In class (Siebel 1404)
Schedule 13 December from 13:30 to 16:30, as set by university policy
Content Subset of previous quiz questions, slightly edited
Grading By course staff
Weight 25%

I may change this to be in the CBTF at a window overlapping the assigned final exam time. If so, that decision will be announced at least a month prior to the final quiz.

Office hours
Location 2340 Siebel
Monday 14:00–15:30
Tuesday 16:30–17:30
Thursday 16:00–17:30
Other By appointment
Asynchronous Help
Tool Campuswire
Link https://campuswire.com/c/G547E4339
Join code See Canvas

4 Course Staff

Name Luther Tychonievich
Office 2340 Siebel
Phone +1 217 333 8609
Email luthert@...
Include 418 or graphics in the subject line
None yet

5 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.