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

• 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]

Examples:

• 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

• 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

• 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

• 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

• 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

• 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

• 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

• 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

• 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

• 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]

Examples:

Week 12: 4/14-4/18

Topics: animation; textures and bumps

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

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

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

Lecture Notes:

Lecture Notes:

Week 15: 5/5-5/6

Topics: project demos