Stanford CS248A, Winter 2023
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 interactive graphics (such as rendering, 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, and image compression.
Basic Info
Time: Tues/Thurs 1:30-2:50am
Location: Gates B1
Instructor: Kayvon Fatahalian
See the course info page for more info on policies and logistics.
Winter 2023 Schedule
Jan 10 |
|
A look at the breadth of graphics applications, simple drawing of lines
|
Jan 12 |
|
Drawing a triangle via point sampling, point-in-triangle testing, aliasing, Fourier interpretation of aliasing, anti-aliasing
|
Jan 17 |
|
Definition of linear transforms, basic geometric transforms, homogeneous coordinates, transform hierarchies, perspective projection
|
Jan 19 |
|
Texture coordinate space, bilinear/trilinear interpolation, how aliasing arises during texture sampling, pre-filtering as an anti-aliasing technique
|
Jan 24 |
|
Z-buffer algorithm, image compositing, end-to-end 3D graphics pipeline as implemented by modern GPUs
|
Jan 26 |
|
Properties of surfaces (manifold, normal, curvature), implicit vs. explicit representations, basic representations such as triangle meshes, bezier curves and patches
|
Jan 31 |
|
Half-edge mesh structures, mesh operations such as tessellation and simplification
|
Feb 02 |
|
Closest point, ray-triangle intersection, ray-mesh intersection, the relationship between rasterization and ray tracing
|
Feb 07 |
|
Accelerating Geometric Queries
Acceleration structures such as bounding volume hierarchies, K-D trees, uniform grids
|
Feb 09 |
|
Radiometry, BRDFs, and the Reflection Equation
Definition of radiometric quantities, the light field, BRDFs, light transport via reflection, integrating energy reflecting from surfaces
|
Feb 14 |
|
Numerical Integration + Monte Carlo Ray Tracing I
Numerical estimation of illumination, Monte Carlo integration and its application to ray tracing
|
Feb 16 |
|
Monte Carlo Ray Tracing II
Estimating direct lighting due to various types of light sources and BRDFs
|
Feb 21 |
|
Path Tracing
Brute force path tracing, Russian roulette, challenges of variance
|
Feb 23 |
|
GPU Hardware and Parallel Rendering
Design of modern GPUs, how rendering is parallelized onto GPUs
|
Feb 28 |
|
Rendering Techniques for the Real-Time Graphics Pipeline
Shadow mapping, reflections, ambient occlusion, precomputed lighting, deferred shading, parallel rasterization
|
Mar 02 |
|
Theory of Color
How the eye works, representing color, brightness and chromaticity
|
Mar 07 |
|
Image Compression and Basic Image Processing
JPG image compression, image filtering via convolution (sharpening/blurring), data-dependent filters
|
Mar 09 |
|
Rendering for Virtual and Augmented Reality
VR Headset hardware, how head-mounted displays cause challenges for renderers, resolution and latency requirements, judder, foveated rendering
|
Mar 14 |
|
Topic TBD
To be determined based on how the quarter goes
|
Mar 16 |
|
Course Summary + Current Graphics Research
Course wrap up, discussion of ongoing graphics research at Stanford
|
Programming Assignments
Jan 26 | Assignment 1: Write Your own SVG Renderer |
Feb 10 | Assignment 2: A Mini 3D Triangle Mesh Editor |
Feb 27 | Assignment 3: [Student Choice] Path Tracer OR Lighting and Materials In GLSL |
TBD | Self-selected final project |
Practice Exercises
One written practice exercise per week, graded on a credit/no credit basis.
Jan 18 | Practice Exercise 1 |
Jan 25 | Practice Exercise 2 |
Feb 1 | Practice Exercise 3 |
Feb 8 | Practice Exercise 4 |