CPSC 424 Fundamentals of Computer Graphics Spring 2008

CPSC 424 Syllabus

 AssignmentsImportant Dates

Week 1: 1/21-1/25

Topics: course introduction; introduction to OpenGL; mathematics for computer graphics

Reading: from Hill & Kelley:

  • introduction to computer graphics: chapter 1.1-1.2
  • introduction to OpenGL: chapters 2.1-2.4 and 3.1-3.2 except 2.3.3; skim 2.3.4-2.3.5
  • mathematics for computer graphics: chapter 4.1-4.5.4 except 4.3.4, 4.5.2; skim 4.2.2, 4.3.5-4.3.6, 4.4.3, 4.5.4 noting definitions and applications

Reading the text: The textbook acts in part as a reference, and also has many examples. A good strategy for approaching the reading is to first skim the assigned sections to get a sense of what information is there and what the key points are, then go back and study the details and examples more carefully.

Lecture Notes: Slides are provided in PDF format (get the free Adobe Acrobat reader). "View" version is full-size and color, suitable for onscreen viewing. "Print" version is four-to-a-page and black-and-white with white backgrounds, suitable for printing. To save toner and paper, please do not print the "view" version.

  • Mon: Introduction to OpenGL (part 1 - anatomy of an OpenGL program) [view, print]
  • Fri: Introduction to OpenGL (part 2 - gluOrtho2D) [view, print]
  • Fri: Math for Computer Graphics (part 1 - points, vectors, coordinate systems, homogeneous coordinates) [view, print]


  • demo.cc (demo OpenGL program; draws colored dots)
HW 1: Introduction to OpenGL
due Mon 1/28

Week 2: 1/28-2/1

Topics: transformations; 3D graphics with OpenGL; building scenes

Reading: from Hill & Kelley:

  • transformations: chapter 5.1-5.4; skim 5.2.7 noting properties
  • 3D graphics with OpenGL: chapter 5.5-5.6.3; skim 5.5 noting ways in which transformations are used

Lecture Notes:

  • Mon: Math for Computer Graphics (part 2 - matrices) [view, print]
  • Mon: Transformations [view, print]
  • Wed: Viewing and Transformations in OpenGL [view, print]
HW 2: Transformation Game
due Fri 2/1
HW 3: Viewing and Transformations in OpenGL
due Wed 2/6

Week 3: 2/4-2/8

Topics: hierarchical modeling and scene graphs; the viewing transform; projections

Reading: from Hill & Kelley:

  • math review: chapter 4.5.5 (representation of lines and planes), 4.6 except 4.6.1 (intersection of lines)
  • viewing: chapter 7.1-7.3 (skip "Drawing SDL Scenes Using a Camera" in section 7.3.1)
  • projections: chapter 7.6, 7.4 (skip "Clipping Faces Against the View Volume" and "Why Did We Clip..." pp. 356-361)

Lecture Notes:

  • Mon: Representation of Scenes [view, print]
  • Mon: Viewing (modeling transform, view matrix) [view, print]
  • Wed: Projections [view, print]
  • Fri: Mathematics of Perspective Projections [view, print]
  Raytracer #1: Camera
due Wed 2/13

Week 4: 2/11-2/15

Topics: mathematics of projections; lighting

Reading: from Hill & Kelley:

  • projections: chapter 7.6, 7.4 (skip "Clipping Faces Against the View Volume" and "Why Did We Clip..." pp. 356-361)
  • lighting: chapter 8.1-8.2 (skip 8.2.10)

Lecture Notes:

  • Mon: Mathematics of Parallel and Oblique Projections [view, print]
  • Fri: Viewport Matrix [view, print]
  • Fri: Lighting: Diffuse Reflection [view, print]
HW 4: Projections in OpenGL
due Fri 2/15
  Raytracer #2: Projection
due Fri 2/22

Week 5: 2/18-2/22

Topics: lighting; color

Reading: from Hill & Kelley:

  • lighting: 8.1-8.2.9
  • color: 11.1-11.2 (introduction of 11.2 only; skip 11.2.1-11.2.2), 11.4.2

Lecture Notes:

  • Mon: Lighting: Specular Reflection, Ambient Light, Color [view, print]
  • Wed: Lighting: RGB, Enhanced Lighting Model, Lights and Materials in OpenGL [view, print]
HW 5: Color
due Mon 2/25

Week 6: 2/25-2/29

Topics: lighting and materials in OpenGL; raster rendering: polygon pipeline

Reading: from Hill & Kelley:

  • building blocks for raster rendering: 1.3-1.4
  • modeling with polygon meshes: 6.1-6.2.2
  • flat and smooth shading: 8.3
  • visible surface determination: 8.4
  • clipping and scan conversion: 4.7-4.8, 9.4, 9.7 (all optional)
  • aliasing and antialiasing: 9.8 (introductory section), 9.8.1

Lecture Notes:

  • Mon: Polygon Pipeline: Polygon Meshes, Clipping, Back-Face Culling, Scan Conversion [view, print]
  • Wed: Polygon Pipeline: Scan Conversion, Antialiasing, Shading [view, print]
HW 6: Lights and Materials in OpenGL
due Fri 2/29
  Raytracer #3: Lighting
due Fri 3/7

Week 7: 3/3-3/7

Topics: polygon pipeline; raytracing: modeling, intersections, normals

Reading: from Hill & Kelley:

  • basic raytracing: 12.1-12.4, 12.6-12.7.2 (12.5 has a discussion of how the code in a raytracer can be organized - it is worth reading, but our raytracer will be organized a bit differently)

Lecture Notes:

  • Mon: Polygon Pipeline: Shading, Visible Surface Determination, Wrapup [view, print]
  • Wed: Raytracing: Introduction, Ray Generation, Ray-Object Intersections [view, print]
  • Fri: Raytracing: MC Intersections, Normals, Pseudocode [view, print]
  Raytracer #4a: Intersections and Normals
due Thu 3/13

Week 8: 3/10-3/14

Topics: raytracing; exam

  midterm exam
in class Wed 3/12
(review information)
solutions (PDF)
spring break


Week 9: 3/24-3/28

Topics: raytracing: shadows, reflection, transparency

Reading: from Hill & Kelley:

  • shadows: 12.11
  • reflection and transparency: 12.12

Lecture Notes:

  • Mon: Photorealism in Raytracing: Shadows, Reflection (part 1) [view, print]
  • Wed: Photorealism in Raytracing: Reflection (part 2), Refraction [view, print]
  • Fri: Photorealism in Raytracing: Implementation Notes (recursive raytracing) [view, print]
  Raytracer #4b: Basic Raytracer
due Wed 4/2

Week 10: 3/31-4/4

Topics: raytracing: efficiency; animation

Reading: from Hill & Kelley:

  • efficiency: 12.10 (12.10.3 is optional)

Lecture Notes:

  • Mon: Photorealism in Raytracing: Other Effects [view, print]
  • Wed: Raytracing: Efficiency [view, print]
  • Fri: Animation: Introduction and Keyframing [view, print]
  Raytracer #5: Recursive Raytracer
due Wed 4/16

Week 11: 4/7-4/11

Topics: animation

Optional Reading: (on Blackboard)

  • dynamics: "Particle System Dynamics" (particles), "Unconstrained Motion" (rigid bodies), "Constrained Motion" (collisions)
  • particle systems: "Particle Systems - A Technique for Modeling a Class of Fuzzy Objects" (particle systems), "Approximate and Probabilistic Algorithms for Shading and Rendering Structured Particle Systems" (structured particle systems)

Lecture Notes:

  • Mon: Animation: Explicit Scripting, Kinematics, Dynamics [view, print]
  • Wed: Animation: Particle Systems [view, print]
  • Fri: Animation: Hierarchial and Structured Particle Systems [view, print]



Week 12: 4/14-4/18

Topics: animation; textures and bumps

Reading: from Hill & Kelley:

  • textures: 8.5 (the details of texture mapping in OpenGL is optional)

Optional Reading: (posted on Blackboard)

Lecture Notes:

  • Mon: Animating Structured Particle Systems, Behavioral Animation [view, print]
  • Wed: Behavioral Animation [view, print]
  • Fri: Behavioral Animation [view, print]
  Final Project
due Tue 5/6

Week 13: 4/21-4/25

Topics: textures and bumps; radiosity

Reading: from Hill & Kelley:

  • textures: 8.5 (the details of texture mapping in OpenGL is optional)
  • radiosity: Radiosity in English

Lecture Notes:


Week 14: 4/28-5/2

Topics: radiosity; photon mapping


Lecture Notes:


Week 15: 5/5-5/6

Topics: project demos


Reading Period and Exams: 5/7-5/13

    final exam
Sun 5/11 3-6pm
(review information)

Valid HTML 4.01!