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

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 computer graphics (such as rendering, geometry, image processing, and modern AI-based graphics techniques). 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, ray tracing, global illumination, image processing, and image compression.

Basic Info
Time: Tues/Thurs 1:30-2:50pm
Location: Gates B1
Instructor: Kayvon Fatahalian
See the course info page for more info on policies and logistics.
Winter 2025 Schedule
Jan 07
A look at the breadth of graphics applications, simple drawing of lines and points
Jan 09
Drawing a triangle via point sampling, point-in-triangle testing, aliasing, Fourier interpretation of aliasing, anti-aliasing
Jan 14
Coordinate Spaces and Transformations
Definition of linear transforms, basic geometric transforms, homogeneous coordinates, transform hierarchies, perspective projection
Jan 16
Texture Mapping
Texture coordinate space, bilinear/trilinear interpolation, how aliasing arises during texture sampling, pre-filtering as an anti-aliasing technique
Jan 21
The Rasterization Pipeline
Z-buffer algorithm, image compositing, end-to-end 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
Jan 28
Mesh Representations and Mesh Processing
Half-edge mesh structures, mesh operations such as tessellation and simplification
Jan 30
Geometric Queries
Closest point, ray-triangle intersection, ray-mesh intersection, the relationship between rasterization and ray tracing
Feb 04
Accelerating Geometric Queries
Acceleration structures such as bounding volume hierarchies, K-D trees, uniform grids
Feb 06
Radiometry, BRDFs, and the Reflection Equation
Definition of radiometric quantities, the light field, BRDFs, light transport via reflection, integrating energy reflecting from surfaces
Feb 11
Reflection Part 2 + Numerical Integration Basics
More on reflection models (specular reflection, transmittance), numerical estimation of illumination, Monte Carlo integration
Feb 13
Monte Carlo Evaluation of the Reflection Equation
Estimating direct lighting due to various types of light sources and BRDFs
Feb 18
Global Illumination and Path Tracing
Brute force path tracing, Russian roulette, challenges of variance
Feb 20
Modern Real-Time Rendering Techniques
Shadow mapping, ambient occlusion, precomputed lighting, deferred shading, real-time raytracing trends and innovations such neural anti-aliasing and denoising.
Feb 25
Rendering Volumes and Points (/w Implications to Reconstruction)
Scene representations (volumes, points, gaussian splats, NeRFs) for volumetric rendering, applications to scene reconstruction.
Feb 27
Optimization Techniques to Recover 3D Scene Representations
Using gradient-based optimization to recover NeRFs, 3D Gaussian splats, and/or tri-plane representations from images.
Mar 04
Theory of Color
How the eye works, representing color, brightness, and chromaticity
Mar 06
Image and Video Compression
Non-linear intensity encodings, chroma subsampling, JPG image compression, a bit on video compression
Mar 11
Topic TBD
Will be announced later in class: potential topics are "how GPUs work", "rendering for VR", or perhaps "generative world models".
Mar 13
Course Summary + Current Graphics Research
Course wrap up, discussion of ongoing graphics research at Stanford, discussion of the future role of generative AI in graphics
Programming Assignments
Jan 23 Assignment 1: Write Your own SVG Renderer
Feb 6 Assignment 2: MeshEdit: A Mini 3D Triangle Mesh Editor
Feb 20 Assignment 3: Path Tracer
TBD Assignment 4: TBD
Written Exercises
Jan 21 Written Exercise 1
Jan 30 Written Exercise 2
Feb 11 Written Exercise 3
Feb 25 Written Exercise 4
Mar 11 Written Exercise 5