Stanford CS248A, Winter 2026
Computer Graphics:
Rendering, Geometry, and Image Manipulation

This course focuses on the fundamental concepts, scene representations, and techniques for tasks such as image generation (rendering), geometry processing, and 3D scene estimation. Topics include: image synthesis via ray tracing and rasterization, sampling and reconstruction, the GPU graphics pipeline, GPU programming, geometric transformations, 3D scene representations (both human engineered and "neural"), spatial acceleration structions, reflectance, global illumination, scene parameter recovery via optimization-based methods, and neural rendering.

Basic Info
Time: Tues/Thurs 1:30-2:50pm
Location: CoDa B80
Instructor: Kayvon Fatahalian
See the course info page for more info on policies and logistics.
Winter 2025 Schedule
Jan 06
Simple drawing of lines and triangles (in 2D or 3D), drawing via point sampling, point-in-triangle testing, how different representations are preferable for different tasks involving these primitives. How rasterization and ray tracing algorithms are two ways to perform the same task.
Jan 08
Point sampling, interpolation, aliasing/anti-aliasing, upsampling/downsampling, Fourier interpretation of aliasing, a bit on neural anti-aliasing
Jan 13
Definition of linear transforms, basic geometric transforms, homogeneous coordinates, transform hierarchies, perspective projection
Jan 15
Properties of surfaces (manifold, normal, curvature), implicit vs. explicit representations, representations such as triangle meshes, voxel grids, signed-distance fields, 3D Gaussian splats, neural representations like NeuralSDFs, converting between representations
Jan 20
How acceleration structures such as bounding volume hierarchies (BVHs), K-D trees, uniform grids, and sparse grids accelerate operations like ray tracing on complex scenes, two-level acceleration structures
Jan 22
Texture coordinate spaces, how aliasing arises during texture sampling, pre-filtering (rather than supersampling) as an anti-aliasing technique
Jan 27
End-to-end 3D rasterization pipeline as implemented by modern GPUs, Z-buffer algorithm, alpha compositing
Jan 29
Definition of radiometric quantities, the light field, BRDFs (reflection models), light transport via reflection, integrating energy reflecting from surfaces, the basics of extending to volumes
Feb 03
Recovering scene parameters from images using optimization methods like gradient descent, how to compute the gradients of rendering functions, why some scene geometry representations are much more amenable to computing gradients than others, discussion of NeRF, plenoxels, and 3D gaussians
Feb 05
More advanced reflection models (specular reflection, transmittance), numerical estimation of direct illumination using Monte Carlo integration, variance reduction using importance sampling
Feb 10
Estimating direct lighting due to various types of light sources using Monte Carlo integration
Feb 12
Brute force path tracing, Russian roulette, challenges of variance, a more vigorous description of volume volume rendering than we had earlier in the class
Feb 17
Real-Time Ray Tracing on Modern GPU Hardware
Real-time raytracing trends, hardware acceleration of ray tracing, advanced importance sampling methods (ReSTIR), and neural denoising.
Feb 19
The Theory of Color
How the eye works, representing color, brightness, and chromaticity
Feb 24
Compressing Images, Videos, and Scenes
Non-linear intensity encodings, chroma subsampling, JPG image compression, a bit on video compression, compressing other media, like BRDFs or scene geometry, neural compression schemes.
Feb 26
Exam Day (no class)
This will be an evening exam, so there's no class
Mar 03
Neural Rendering and Interactive Neural “World Models” (What the $%@%! is a World Model Anyway?)
Replacing a renderer with a DNN, replacing a full game engine with a DNN, potential pros and cons of these neural methods compared to more traditional graphics techniques
Mar 05
Rendering for Virtual and Augmented Reality Headsets
VR Headset hardware, how head-mounted displays cause challenges for renderers, resolution and latency requirements, judder, foveated rendering
Mar 10
Topic TBD
To be determined based on class interests.
Mar 12
Course Summary + Current Graphics Research
Course wrap up, discussion of ongoing graphics research at Stanford, discussion of the future role of AI in graphics
Programming Assignments

This year CS248A will have all new programming assignments. Assignments will be written in Python and in a new GPU programming languages called Slang.

Jan 28 Assignment 1: Ray Casting Triangle Meshes, Volumes, and Signed Distance Fields, oh my!
Feb 13 Assignment 2: Neural Texturing and Differential Volume Rendering to Recover Scenes from Images
Feb 27 Assignment 3: A Global Illumination Path Tracer
TBD Assignment 4: Self-Selected Project (which may involve training your own interactive world model)
Written Exercises
Jan 29 Written Exercise 1
Feb 10 Written Exercise 2
Feb 19 Written Exercise 3
Mar 5 Written Exercise 4