Stanford CS248, Winter 2020
INTERACTIVE COMPUTER GRAPHICS
This course provides a comprehensive introduction to computer graphics, focusing on fundamental concepts and techniques, as well as their crosscutting relationship to multiple problem domains in interactive graphics (such as rendering, animation, geometry, image processing). Topics include: 2D and 3D drawing, sampling, interpolation, rasterization, image compositing, the GPU graphics pipeline (and parallel rendering), geometric transformations, curves and surfaces, geometric data structures, subdivision, meshing, spatial hierarchies, image processing, compression, time integration, physicallybased animation, and inverse kinematics.
Basic Info
Tues/Thurs noon1:30pm
Room: Gates B1
Instructor: Kayvon Fatahalian
See the course info page for more info on course policies and logistics.
Winter 2020 Schedule
Jan 7 
Breadth of graphics applications, simple drawing of lines

Jan 9 
Drawing a triangle via point sampling, pointintriangle testing, aliasing, Fourier interpretation of aliasing, antialiasing
 Programming Assignment 1 Released

Jan 14 
Definition of linear transforms, basic geometric transforms, homogeneous coordinates, transform hierarchies, perspective projection

Jan 16 
Perspective projection, texture coordinate space, bilinear/trilinear interpolation, how aliasing arises during texture sampling, prefiltering as an antialiasing technique

Jan 21 
The Rasterization Pipeline
Zbuffer algorithm, image compositing, endtoend 3D graphics pipeline as implemented by modern GPUs

Jan 23 
Introduction to Geometry
Properties of surfaces (manifold, normal, curvature), implicit vs. explicit representations, basic representations such as triangle meshes, bezier curves and patches
 Programming Assignment 1 Due
 Programming Assignment 2 Released

Jan 28 
Mesh Representations and Geometry Processing
Halfedge mesh structures, mesh operations such as tessellation and simplification

Jan 30 
Geometric Queries
Closest point, raytriangle intersection, raymesh intersection, the relationship between rasterization and ray tracing

Feb 4 
Accelerating Geometric Queries
Acceleration structures such as bounding volume hierarchies, KD trees, uniform grids

Feb 6 
Materials, Lighting, and Shading
Common material models, use of texture for lighting (bump mapping, environment mapping, prebaked lighting), motivating need for shaders on modern GPUs
 Programming Assignment 2 Due
 Programming Assignment 3 Released

Feb 11 
Introduction to Animation
Animation examples, splines, keyframing

Feb 13 
Kinematics and Motion Capture
Optimization basics, inverse kinematics, motion graphs, methods of capturing human motion (motion capture suits, Kinect, computer vision methods)

Feb 18 
Dynamics and Time Integration
basic numerical integration, forward Euler, massspring systems (e.g., for cloth simulation), particle systems

Feb 20 
Theory of Color
How the eye works, color spaces, brightness and lightness, motivation for Gamma correction
 Programming Assignment 3 Due

Feb 25 
Image Compression and Basic Image Processing
JPG image compression, image filtering via convolution (sharpening/blurring), nonlinear filters

Feb 27 
Image Processing for Digital Photography
Multiresolution techniques, tone adjustment, trends in deep learningbased image manipulation
 Project Proposal Due

Mar 3 
Modern Rendering Techniques for the RealTime Graphics Pipeline
Shadow mapping, reflections, ambient occlusion, precomputed lighting, deferred shading, parallel rasterization
 Evening Exam

Feb 5 
Rendering Challenges of Virtual and Augmented Reality
VR Headset hardware, how headmounted displays cause challenges for renderers, resolution and latency requirements, judder, foveated rendering

Mar 10 
Efficient 3D Graphics on Mobile GPUs
Energy efficient rendering on mobile phones, overview of recent research topics in computer graphics

Mar 12 
Course Recap
Have a great Spring Break!

Programming Assignments
Jan 23  Assignment 1: Write Your own SVG Renderer 
Feb 6  Assignment 2: A Mini 3D Triangle Mesh Editor 
Feb 20  Assignment 3: Lighting and Materials In GLSL 
TBD  Assignment 4: SelfSelected Final Project 
Exercises
Jan 17  Exercise 1 