Stanford CS248, Spring 2018

This course provides a comprehensive introduction to computer graphics, focusing on fundamental concepts and techniques, as well as their cross-cutting 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, physically-based animation, and inverse kinematics.

Basic Info
Tues/Thurs 3:00-4:20pm
Bldg 260, Room 113
Instructor: Kayvon Fatahalian
See the course info page for more info on course policies, logistics, and how to prepare for the course.
Spring 2018 Schedule (subject to change)
Apr 3
Breadth of graphics, simple drawing of lines, linear algebra and vector math review
Apr 5
Drawing a triangle via point sampling, point-in-triangle testing, aliasing, Fourier interpretation of aliasing, anti-aliasing
Assignment 1 released
Apr 10
Definition of linear transform, basic geometric transforms, homogeneous coordinates, transform hierarchies, perspective projection
Apr 12
perspective projection, texture coordinate space, bilinear/trilinear interpolation, how aliasing arises during texture sampling, prefiltering as an anti-aliasing technique
Apr 17
Z-buffer algorithm, image compositing, end-to-end 3D graphics pipeline as implemented by modern GPUs
Apr 19
Properties of surfaces (manifold, normal, curvature), implicit vs. explicit representations, basic representations such as triangle meshes, bezier curves and patches
Assignment 1 due, Assignment 2 Released
Apr 24
Half-edge mesh structures, mesh operations such as tessellation and simplification
Apr 26
closest point, ray-triangle intersection, ray-mesh intersection
May 1
Acceleration structures such as bounding volume hierarchies, K-D trees, uniform grids, application to ray-casting, the relationship between rasterization and ray casting
May 3
Common material models, use of texture for lighting (bump mapping, environment mapping, prebaked lighting), motivating need for shaders on modern GPUs
Assignment 2 due
May 8
Midterm Exam
Good luck!
May 10
VR Headset hardware, how head-mounted displays cause challenges for renderers, resolution and latency requirements, judder, foveated rendering
Assignment 3 out
May 15
Animation examples, splines, keyframing
May 17
Optimization basics, inverse kinematics, motion graphs, methods of capturing human motion (motion capture suits, Kinect, computer vision methods)
Assignment 3 due (on Sun May 20), final projects begin
May 22
Dynamics and Time Integration (Guest Lecture from Doug James)
basic numerical integration, forward Euler, mass-spring systems (e.g., for cloth simulation), particle systems
May 24
How the eye works, color spaces, brightness and lightness, motivation for Gamma correction
May 29
JPG image compression, image filtering via convolution (sharpening/blurring), non-linear filters
May 31
Shadow mapping, reflections, ambient occlusion, precomputed lighting, deferred shading, parallel rasterization
Jun 5
Energy efficient rendering on mobile phones, overview of recent research topics in computer graphics
Assignments and Projects
due Apr 19Assignment 1: Write Your own SVG Renderer
due May 3Assignment 2: A Mini 3D Triangle Mesh Editor
due May 20Assignment 3: Lighting and Materials In GLSL
due Jun 9Self-Selected Term Project
weeklyGuidelines and Tips for Making Good Lecture Comments