mshah.ioCourse ScheduleCourse Information


CPSC 409/509 Real-Time 3D Computer Graphics Programming

'Let us make some pretty pictures--from the ground up' -- Your Instructor

The Famous Utah Teapot
The Dragon!
The Stanford Bunny

Schedule/Road Map

The following is our tentative syllabus for the course, changes should be expected throughout the semester. I will announce in class, piazza, or through e-mail any major changes.
WeekDateLecture and ReadingsProblem SetsNote(s)
1 2025-Jan-14
Module 1 - Introduction to Computer Graphics
  1. Course Structure/Administrivia
  2. Introduction to Computer Graphics
  3. Introduction to Graphics APIs and some History
-- --
Welcome back to class!

Note: 1st assignment has extra time to accomodate students who add late.
1 2025-Jan-16
Module 2 - Graphics Application, SDL Setup, and PPM Images
  1. Graphics Application Loop
  2. SDL Introduction -- creating a window, handling keyboard input
  3. Setting up OpenGL with D and SDL
  4. Understanding the D compilation process
  5. Understanding images
  6. PPM Image Format and image data
PSET 01 Released (Due Jan. 23 Anywhere on Earth)

(Late Deadline Jan. 30 for up to 90%)
-- --
2 2025-Jan-21
Module 3 - Building Virtual Worlds, and GPU Graphics Pipeline Introduction
  1. Building Virtual Worlds
  2. Graphics Pipeline (OpenGL Perspective)
  3. GPU Hardware
  4. Some GPU History
  5. Understanding OpenGL C programming API
  6. OpenGL is a C API with global state -- it's a state machine
PSET 02 Released (Due Jan. 30 Anywhere on Earth)

(Late Deadline Feb. 6 for up to 90%)
-- --
2 2025-Jan-23
Module 4 - Modern Graphics: Buffers, Shaders, and a first triangle
  1. Computer Graphics Pipeline (OpenGL Perspective)
  2. Drawing our First Shape
  3. Vertex Array Objects(VAO)
  4. A First Shader
  5. Vertex Buffer in OpenGL
  6. Vertex Attributes
  7. Vertex and Fragment Shaders
-- --
Add/Drop Period closes Jan. 22 at 5:00pm ET
3 2025-Jan-28
Module 5 - Attributes and Uniforms
  1. Using multiple attributes in vertex specification: color
  2. Uniforms
  3. GLSL Shader Programming Primitives
-- --
-- --
3 2025-Jan-30
Module 6 - Meshes 01: Indexed Meshes
  1. Winding Order
  2. Culling
  3. Indexed Mesh
  4. Obj model format
PSET 03 Released (Due Feb. 8 Anywhere on Earth)

(Late Deadline Feb. 15 for up to 90%)
-- --
4 2025-Feb-04
Module 7 - Math 1 - Transformations: Numbers, Coordinate Systems, and Vectors
  1. Numbers
  2. Coordinate Systems
  3. 3D Vectors (Length, Unit Vectors, Dot Product, Cross Product, Normals)
-- --
-- --
4 2025-Feb-06
Module 8 - Math 2 - Transformations: Matrices, Rotation, and Camera
  1. Special 4x4 Transformation Matrices
  2. Vertex Transformations
  3. Scaling, Rotation, Translation, and Shear
-- --
-- --
5 2025-Feb-11
Module 9 - Math 3 - Transformations: Camera
  1. Projection Matrices
  2. Perspective Transform
  3. MVP Transformation
  4. Camera
  5. View Frustum Transform
  6. A Simple Camera
  7. Clipping
PSET 04 Released (Due Feb. 19 Anywhere on Earth)

(Late Deadline Feb. 26 for up to 90%)
-- --
5 2025-Feb-13
Module 10 - Scenegraphs and the Visibility Problem
  1. Trees (Data structure)
  2. Scene Graph/ Scene Trees
  3. Frustum Culling
  4. Occlusion Queries
-- --
-- --
6 2025-Feb-18
Module 11 - Textures, Mipmapping
  1. Textures are Uniforms (accessed as sampler2D in fragment shader)
  2. Texture Sampling
  3. Mipmapping
-- --
-- --
6 2025-Feb-20
Module 12 - Graphics Architecture and Debugging
  1. glError
  2. Abstraction
  3. Debugging with Renderdoc
PSET 05 Released (Due Mar. 3 Anywhere on Earth)

(Late Deadline Mar. 10 for up to 90%)
-- --
7 2025-Feb-25
Module 13 - Terrain Rendering and Multitexturing
  1. Triangle Strips
  2. Heightmaps
  3. Multitexturing
PSET 06 Released (Due Mar. 7 Anywhere on Earth)

(Late Deadline Mar. 14 for up to 90%)
-- --
7 2025-Feb-27
Module 14 - Basic Lighting
  1. Adding a Light to OpenGL
  2. Lights in OpenGL
  3. Ambient, Diffuse, Specular (ADS) model
  4. Gouraud shading
  5. Phong Illumination Model
  6. Blinn-Phong Illumination Model
PSET 07 Released (Due Apr. 4 Anywhere on Earth)

(Late Deadline Apr. 11 for up to 90%)'
Brief Study Guide. Exam otherwise includes any other materials from lecture, slides, and homeworks. You must finish the exam in one sitting (i.e. when you open the exam, your time starts)
8 2025-Mar-04
Module 15 - Point Lights and Multiple Lights
  1. Point Lights
  2. Multiple Lights in Shaders
  3. More on GLSL Data
  4. Uniform Buffer Objects (UBO)
Online exam released on canvas Mar. 3 at 6:00pm EST
Online exam due on canvas (Exam due Mar. 7 Anywhere on Earth which is precisely Mar. 8 at 8AM EST)
8 2025-Mar-06
-- --
Mid-semester date (Mar. 7)
9 2025-Mar-11
-- --
Spring Recess
9 2025-Mar-13
-- --
Spring Recess
10 2025-Mar-18
-- --
Spring Recess - Mike at GDC, may be slow to respond to e-mail
10 2025-Mar-20
-- --
Spring Recess
11 2025-Mar-25
Module 21 - Advanced Lighting (Normal and Parallax), Cube and Environment Mapping
  1. Specular Mapping
  2. Normal Mapping
  3. Parallax Mapping
  4. Displacement Mapping
PSET08(Due Apr. 13 Anywhere on Earth)

(Late Deadline Nov. Apr. 20 for up to 90%)
-- --
11 2025-Mar-27
-- --
-- --
12 2025-Apr-01
Module 23 - Cube Maps and Shadow Maps
  1. Skybox and Skysphere
  2. Environment and Cube/Sphere Mapping
  3. Shadows
-- --
Mike traveling to ACCU Conference; class will be pre-recorded and posted at regular time
12 2025-Apr-03
Module 24 - Advanced Graphics - Deferred Rendering
  1. Forward Rendering
  2. Deferred Rendering
  3. Other rendering techniques
-- --
Mike traveling to ACCU Conference; class will be pre-recorded and posted at regular time
13 2025-Apr-08
Module 25 - Graphics Engine Study
  1. Final Project Review
  2. Graphics Study
-- --
13 2025-Apr-10
Module 26 - Advanced Graphics - More Shaders (Geometry, Tesselation, and Compute)
  1. Game Graphics Pipeline
  2. Geometry Shaders
  3. Tessellation Shaders
  4. image storage
  5. shader storage buffer objects (SSBO)
  6. Compute Shaders
  7. Mesh Shaders
PSET09(Due Apr. 20 Anywhere on Earth)

(Late Deadline Apr. 27 for up to 90%)
Note: You should start committing to a final project around this time.
14 2025-Apr-15
Module 27 - Shading Models: PBR and Procedural Textures
  1. Physically-Based Rendering
  2. Procedural Textures
PSET 10 (optional)
-- --
14 2025-Apr-17
Module 28 - Instructors Choice -- TBD (e.g. Water, animation, particles)
  1. Meshes
  2. Animated Sprites (for particles)
  3. Instancing (for particles)
  4. Potentially: Bloom and HDR Rendering
  5. Shaders in OpenGL 3.3 to 4.6+
  6. Instancing and Billboarding
  7. Instancing
  8. Water Rendering
  9. Animated model formats (e.g. md2, md3, etc.)
  10. Instancing
  11. Polygon Soup/Triangles
  12. Creating a mesh class (Geometry)
-- --
-- --
15 2025-Apr-22
-- --
-- --
15 2025-Apr-24
Module 30 - Course wrap up
  1. Course Wrap-up! (Last class)
  2. Class Photo (if in person)
'Final project due May. 1 at noon ET. (Note: No extensions for final project; 10% late penalty every day project is late)
Last official day of class :(

Final Project presentations will be Thur. May. 1 from 4-6pm in Loria room 250
Please do not redistribute or host any materials without e-mailing me first. I generally am happy to share the latest .pdf or slide presentation with those who ask. Thank you for your time!