CPSC 424 Computer Graphics Fall 2025

CPSC 424 Course Information

On this page:


Course Description and Objectives

This course studies the principles underlying the generation and display of 3D computer graphics. Topics include geometric modeling, 3D viewing and projection, lighting and shading, color, and the use of one or more technologies and packages such as WebGL, OpenGL, and Blender. Advanced topics might include ray tracing, global illumination, texture- and bump-mapping, the mathematics of curves and surfaces, volumetric rendering, and animation.

By the end of the course, the successful student will be able to:

  • explain the fundamentals of realtime 3D computer graphics in both the fixed polygon pipeline (OpenGL 1.1) and programmable pipeline (OpenGL 2.0) models
  • explain how to achieve photorealistic effects within the polygon pipeline, and the limitations and drawbacks of those methods
  • explain core aspects of geometric modeling, including representation of models, hierarchical modeling, and scene graphs
  • write low-level graphics programs (including shaders) within the programmable pipeline
  • use modern high-level APIs and applications at a basic level to create scenes and animations, and build on that knowledge to explore more advanced features of those tools

Specific skills and abilities include:

  • graphics programming using WebGL, including writing shaders in GLSL
  • graphics programming using three.js
  • modeling and animation using Blender


Class Format and Expectations

This course has a required lab in addition to three-times-a-week class meetings.

You are expected to attend all scheduled class and lab meetings (a total of 4.5 hours per week), and should expect to spend approximately 8-10 hours per week on average (*) on additional work (readings, labs, projects, studying) outside of class.

(*) The assigned work is intended to take about this much time, though your experience may vary — it is certainly easy to get stuck on something that takes a long time to figure out! If you routinely spend substantially more time and you feel like you are spinning your wheels and not making progress, you should visit office hours for help. If you routinely spend much less time, you may not be successfully mastering the material — challenge yourself by doing more than the minimum requirements for an assignment.


Prerequisites

CPSC 329 is required (prerequisite or corequisite).

Programming in this course will be done in JavaScript and GLSL. These languages will be introduced in the course; it is expected that students are comfortable enough with core constructs (variables, loops, conditionals, arrays, subroutines) to be able to pick up the key elements of these new languages.


Course Materials
Textbook

We will be using Professor Eck's Introduction to Computer Graphics, a free online textbook. It is possible to download a PDF or order a printed version of the book if desired. (Please do not print chunks of the book on the department printers.)

Software

All of the software needed for this course is available on the Linux machines in Demarest 002, in the Math/CS department lab in Lansing 310, and remotely through the Linux VDI. It is recommended that you access the necessary software through Linux.

If you want to set up your own computer, you will need to install:

  • Visual Studio Code (1.103)
  • three.js (r179)
  • Blender (3.0.1)
  • a file transfer program, such as FileZilla