Stanford CS248A, Winter 2024
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:50pm
Location: NVIDIA Auditorium
Instructor: Kayvon Fatahalian
See the course info page for more info on policies and logistics.
Winter 2024 Schedule
Jan 09 |
|
A look at the breadth of graphics applications, simple drawing of lines and points
|
Jan 11 |
|
Drawing a triangle via point sampling, point-in-triangle testing, aliasing, Fourier interpretation of aliasing, anti-aliasing
|
Jan 16 |
|
Definition of linear transforms, basic geometric transforms, homogeneous coordinates, transform hierarchies, perspective projection
|
Jan 18 |
|
Texture coordinate space, bilinear/trilinear interpolation, how aliasing arises during texture sampling, pre-filtering as an anti-aliasing technique
|
Jan 23 |
|
Z-buffer algorithm, image compositing, end-to-end 3D graphics pipeline as implemented by modern GPUs
|
Jan 25 |
|
Properties of surfaces (manifold, normal, curvature), implicit vs. explicit representations, basic representations such as triangle meshes, bezier curves and patches
|
Jan 30 |
|
Half-edge mesh structures, mesh operations such as tessellation and simplification
|
Feb 01 |
|
Closest point, ray-triangle intersection, ray-mesh intersection, the relationship between rasterization and ray tracing
|
Feb 06 |
|
Acceleration structures such as bounding volume hierarchies, K-D trees, uniform grids
|
Feb 08 |
|
Definition of radiometric quantities, the light field, BRDFs, light transport via reflection, integrating energy reflecting from surfaces
|
Feb 13 |
|
More on reflection models (specular reflection, transmittance), numerical estimation of illumination, Monte Carlo integration
|
Feb 15 |
|
Estimating direct lighting due to various types of light sources and BRDFs
|
Feb 20 |
|
Brute force path tracing, Russian roulette, challenges of variance
|
Feb 22 |
|
Shadow mapping, reflections, ambient occlusion, precomputed lighting, deferred shading, real-time raytracing trends and innovations
|
Feb 27 |
|
How the eye works, representing color, brightness, and chromaticity
|
Feb 29 |
|
non-linear encodings, chroma subsampling, JPG image compression
|
Mar 05 |
|
VR Headset hardware, how head-mounted displays cause challenges for renderers, resolution and latency requirements, judder, foveated rendering
|
Mar 07 |
|
Design of modern GPUs, how rendering is parallelized onto GPUs
|
Mar 12 |
|
Scene representations (sparse volumes, gaussian splats) for volumetric rendering, applications to NeRFs and modern scene capture
|
Mar 14 |
|
Course wrap up, discussion of ongoing graphics research at Stanford
|
Programming Assignments
Jan 26 | Assignment 1: Write Your own SVG Renderer |
Feb 9 | Assignment 2: MeshEdit: A Mini 3D Triangle Mesh Editor |
Feb 27 | Assignment 3: Path Tracer |
Mar 19 | Self-selected Final Project |
Practice Exercises
Jan 23 | Practice Exercise 1 |
Jan 30 | Practice Exercise 2 |
Feb 6 | Practice Exercise 3 |
Feb 13 | Practice Exercise 4 |
Feb 20 | Practice Exercise 5 |
Mar 5 | Practice Exercise 6 |