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
-- --
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
PSET 08(Due Mar. 25 Anywhere on Earth)

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

8

Wednesday, 2026-Mar-04
-- --
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
-- --
Mid-semester date (Mar. 7)

11

Wednesday, 2026-Mar-25
PSET 09(Due Apr. 3 Anywhere on Earth)

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

12

Monday, 2026-Mar-30
-- --
-- --

12

Wednesday, 2026-Apr-01
PSET 10(Due Apr. 12 Anywhere on Earth)

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

13

Monday, 2026-Apr-06
-- --
Note: You should start committing to a final project around this time.

13

Wednesday, 2026-Apr-08
PSET 11(Due Apr. 19 Anywhere on Earth)

(Late Deadline Apr. 26 for up to 90%)
D language 2026 Symposium!

April 10th Colloquium

April 11th Talks

April 12th Hackathon

14

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

14

Wednesday, 2026-Apr-15
-- --
-- --

15

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

15

Wednesday, 2026-Apr-22
'Final project due Apr/May. TBD 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 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!