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 crosscutting 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:302: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, pointintriangle testing, aliasing, Fourier interpretation of aliasing, antialiasing

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, prefiltering as an antialiasing technique

Jan 24 

Zbuffer algorithm, image compositing, endtoend 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 

Halfedge mesh structures, mesh operations such as tessellation and simplification

Feb 02 

Closest point, raytriangle intersection, raymesh intersection, the relationship between rasterization and ray tracing

Feb 07 

Accelerating Geometric Queries
Acceleration structures such as bounding volume hierarchies, KD 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 RealTime 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), datadependent filters

Mar 09 

Rendering for Virtual and Augmented Reality
VR Headset hardware, how headmounted 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  Selfselected 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 