mshah.ioCourse ScheduleCourse Information


CPSC 4792/5792 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.

Week

Date

Lecture and Readings

Problem Sets

Note(s)

1

Monday, 2026-Jan-12
Module 1 - Introduction to Computer Graphics
  1. Course Structure/Administrivia
  2. Introduction to Computer Graphics
  3. Introduction to Graphics APIs and some History
PSET 01 Released (Due Jan. 23 Anywhere on Earth)

(Late Deadline Jan. 30 for up to 90%)
Welcome back to class!

Note: 1st assignment has extra time to accomodate students who add late.

1

Wednesday, 2026-Jan-14
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
-- --
-- --

2

Monday, 2026-Jan-19
-- --
No Class; Martin Luther King Jr. Day

2

Wednesday, 2026-Jan-21
Module 4 - 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

Friday, 2026-Jan-23
Module 5 - 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
-- --
Friday classes do not meet; Monday classes meet instead

3

Monday, 2026-Jan-26
Module 6 - Attributes and Uniforms
  1. Using multiple attributes in vertex specification: color
  2. Uniforms
  3. GLSL Shader Programming Primitives
PSET 03 Released (Due Feb. 6 Anywhere on Earth)

(Late Deadline Feb. 13 for up to 90%)
Add/Drop Period closes Jan. 22 at 5:00pm ET

3

Wednesday, 2026-Jan-28
Module 7 - Meshes 01: Indexed Meshes
  1. Winding Order
  2. Culling
  3. Indexed Mesh
  4. Obj model format
-- --
-- --

4

Monday, 2026-Feb-02
Module 8 - Math 1 - Transformations: Numbers, Coordinate Systems, and Vectors
  1. Numbers
  2. Coordinate Systems
  3. 3D Vectors (Length, Unit Vectors, Dot Product, Cross Product, Normals)
PSET 04 Released (Due Feb. 13 Anywhere on Earth)

(Late Deadline Feb. 20 for up to 90%)
-- --

4

Wednesday, 2026-Feb-04
Module 9 - Math 2 - Transformations: Special Transformation Matrices
  1. Special 4x4 Transformation Matrices
  2. Vertex Transformations
  3. Scaling, Rotation, Translation, and Shear
-- --
-- --

5

Monday, 2026-Feb-09
Module 10 - Math 3 - Transformations: Local, World, and View Spaces
  1. Projection Matrices
  2. Perspective Transform
  3. MVP Transformation
  4. Camera
  5. View Frustum Transform
  6. A Simple Camera
  7. Clipping
PSET 05 Released (Due Feb. 20 Anywhere on Earth)

(Late Deadline Feb. 27 for up to 90%)
-- --

5

Wednesday, 2026-Feb-11
Module 11 - Objects, Scenegraphs, and the Visibility Problem
  1. Managing Objects
  2. Trees (Data structure)
  3. Scene Graph/ Scene Trees
  4. Frustum Culling
  5. Occlusion Queries
-- --
-- --

6

Monday, 2026-Feb-16
Module 12 - Textures, Mipmapping
  1. Textures are Uniforms (accessed as sampler2D in fragment shader)
  2. Texture Sampling
  3. Mipmapping
PSET 06 Released (Due Feb. 27 Anywhere on Earth)

(Late Deadline Mar. 6 for up to 90%)
-- --

6

Wednesday, 2026-Feb-18
Module 13 - Terrain Rendering and Multitexturing
  1. Triangle Strips
  2. Heightmaps
  3. Multitexturing
PSET 07 Released (Due Mar. 6 Anywhere on Earth)

(Late Deadline Mar. 13 for up to 90%)'
-- --

7

Monday, 2026-Feb-23
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
-- --
This lecture will be prerecorded ahead of lecture due to the snowstorm

7

Wednesday, 2026-Feb-25
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)
-- --
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

Monday, 2026-Mar-02
Module 16 - Debugging and Graphics Engine Abstractions
  1. glError
  2. Abstraction
  3. Debugging with Renderdoc
PSET 08(Due Mar. 27 Anywhere on Earth)

(Late Deadline Nov. Apr. 4 for up to 90%)
-- --

8

Wednesday, 2026-Mar-04
Module 17 - Exam
  1. Take the exam
-- --
Exam is taken during class, using Canvas

9

Monday, 2026-Mar-09
-- --
Spring Recess

9

Wednesday, 2026-Mar-11
-- --
Spring Recess

10

Monday, 2026-Mar-16
-- --
Spring Recess

10

Wednesday, 2026-Mar-18
-- --
Spring Recess

11

Monday, 2026-Mar-23
Module 22 - Advanced Lighting (Normal and Parallax), Cube and Environment Mapping
  1. Specular Mapping
  2. Normal Mapping
  3. Parallax Mapping
  4. Displacement Mapping
  5. Screen Space Ambient Occlusion (SSAO) - if time
PSET 09(Due Apr. 3 Anywhere on Earth)

(Late Deadline Apr. 10 for up to 90%)
Mid-semester date (Mar. 7)

11

Wednesday, 2026-Mar-25
-- --
-- --

12

Monday, 2026-Mar-30
Module 24 - Cube Maps and Shadow Maps
  1. Skybox and Skysphere
  2. Environment and Cube/Sphere Mapping
  3. Shadows
-- --

12

Wednesday, 2026-Apr-01
Module 25 - Advanced Graphics - Deferred Rendering
  1. Forward Rendering
  2. Deferred Rendering
  3. Other rendering techniques
PSET 10(Due Apr. 12 Anywhere on Earth)

(Late Deadline Apr. 19 for up to 90%)
-- --

13

Monday, 2026-Apr-06
Module 26 - Graphics Engine Study
  1. Final Project Review
  2. Graphics Study
-- --
Note: You should start committing to a final project around this time.

13

Wednesday, 2026-Apr-08
Module 27 - Shading Models: PBR and Procedural Textures
  1. Physically-Based Rendering
  2. Procedural Textures
-- --
D language 2026 Symposium (click to register)!

April 10th Colloquium at 4pm, location TBD(0.5% extra credit)

April 11th Talks (2% extra credit)

April 12th Hackathon (1% extra credit)

Need to attend at least 2 events to receive any extra credit

14

Monday, 2026-Apr-13
-- --
-- --

14

Wednesday, 2026-Apr-15
-- --
This lecture will be prerecorded, as I will be out of town.

15

Monday, 2026-Apr-20
-- --
-- --

15

Wednesday, 2026-Apr-22
'Final project due May 4 at noon. Final presentations in Loria 250 on May 4 from 5-6:30pm. (Note: No extensions for final project; 10% late penalty every day project is late)
Last official day of class :(

Final Project presentations will be TBD day on TBD from 6-8pm in ??? room ???
Please do not redistribute or host any materials without e-mailing me first. Thank you for your time!