CPSC 424 Fundamentals of Computer Graphics Spring 2008

CPSC 424 Course Information

Course Description

While the applications of computer graphics are by no means limited to entertainment, the most familiar examples of computer-generated imagery (CGI) probably come from film, television, and video games. CGI has progressed beyond the realm of the occasional special-effect to become a supporting character (and sometimes even the lead); advances in hardware have made ever more complex and photorealistic scenes possible.

The goal of this course is to gain an understanding of the fundamental issues at the heart of 3D computer graphics, including 3D viewing and projection, illumination and color, the polygon pipeline and its components, raytracing, scene representation, and animation. OpenGL, a common graphics API, will be introduced. Time permitting, additional topics such as texture- and bump-mapping, more sophisticated lighting models, and modeling natural phenomena will be studied.

A series of homeworks and programming assignments will provide experience in these topics, and will culminate in a final project allowing students to explore a topic of interest in more depth.


Stina Bridgeman
Lansing 312, x3614

Course Web Page

You are expected to regularly consult the course web page for announcements, assignments, and most handouts.


Computer Graphics using OpenGL, 3rd edition
Hill & Kelley
Pearson Prentice Hall, 2007
ISBN 0131496700

Additional material will be handed out or posted on the course webpage.


C- in CPSC 225, or instructor permission

Rationale & Aims

This course, like the other 300- and 400-level computer science courses, explores a particular subdiscipline of computer science. The most visible application of photorealistic 3D computer graphics is perhaps in entertainment - movies, TV, and video games. However, there are many other areas which benefit from 2D and 3D graphics: computer-aided design, virtual reality environments (for education and training, as well as entertainment), data and scientific visualization, art, image processing, and even the graphical user interfaces which are standard these days.

This course will address aspects of rendering, modeling, and animation. Because entire courses can be taught on just one of these areas, this course will necessarily be something of a survey rather an in-depth study of any one area. The intent is to provide a solid foundation in the core terminology and concepts in computer graphics (as a basis for further study, and to facilitate the learning of a particular graphics API or package), and to push far enough into each topic to indicate what it is about, provide some glimpses of what can be achieved and how, and whet one's appetite for more exploration.

Course Content Overview

The topics covered in the course can be grouped into several categories.

Basic 3D Graphics: Modeling and rendering are at the core of computer graphics; modeling deals with how to specify the geometry of an object or scene, while rendering is the process of turning a geometric description of an object into an image on the screen. As a result, much of the course focuses on the basics of modeling and rendering. Topics include:

  • basic 3D modeling and geometry, including transformations and the necessary mathematics
  • hierarchical modeling and scene graphs
  • viewing and projection, including the virtual camera and the viewing pipeline
  • basic lighting and shading, including modeling light/surface interactions and modeling different types of light sources
  • color
  • rendering in a raster world, including two major approaches for raster rendering: the polygon pipeline and raytracing

Photorealism: Often the goal of rendering is to produce images which are as realistic-looking as possible, so we will study some techniques which lead to more realistic images. Topics include:

  • shadows
  • reflections and transparency
  • texture- and bump-mapping [time permitting]
  • more sophisticated lighting models, including physically-based models and radiosity [time permitting]

Animation: Rendering produces a single image; animation strings together a series of images to form a scene which varies over time. The key issue in animation is how to specify this variation without explicitly describing every image in the animation sequence. Our consideration of animation will focus on methods for specifying the motion of objects, though many of the techniques are applicable to other kinds of variation.

  • scripting part or all of the motion path
  • particle systems
  • physically-based animation
  • behavioral animation

OpenGL: OpenGL is a well-established, commonly used API for computer graphics. While there is far more to OpenGL than will be covered in this course, the key ingredients for creating 2D and 3D images with OpenGL will be studied.

Advanced Topics: Time permitting, several additional topics will be studied, including:

  • modeling natural phenomena such as plants and trees, wind, and fish
  • non-photorealistic rendering

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

  • describe and carry out the steps in the 3D viewing pipeline, including derivation of the matrices involved
  • identify and describe common projections
  • describe a basic lighting model, and explain each component of the lighting model in terms of the effect it has on the rendered image
  • discuss the RGB color model, and the implications of the model for computer graphics
  • understand hierarchical modeling and be able to create a scene graph to describe a scene
  • describe the polygon pipeline approach to rendering, including an overview of scan conversion, shading, and visible surface determination
  • describe and carry out the process of recursive raytracing, including ray generation, intersection calculations, and handling reflection, transparency, and shadows
  • explain how to address efficiency issues in raytracing
  • compare and contrast the polygon pipeline with raytracing
  • describe several techniques for specifying the motion of objects in an animation, and discuss tradeoffs of each
  • create 3D scenes with OpenGL using lights, materials, parallel and perspective projections, and basic shapes (spheres, cubes, cylinders, etc)

Depending on the additional topics covered, the successful student should also be able to:

  • describe and carry out texture-mapping, compare/contrast different strategies for performing the mapping, and discuss its tradeoffs
  • describe and carry out bump mapping, and discuss its tradeoffs
  • describe and carry out the radiosity lighting method, explain the effect it has on the rendered image, compare and contrast shooting and gathering, and discuss its tradeoffs
  • describe the Cook-Torrance lighting model
  • describe techniques for modeling natural phenomena
  • describe techniques for non-photorealistic rendering

Valid HTML 4.01!