CS 381 Fall 2009: Computer Graphics

CS 381 Fall 2009
Computer Graphics

Department: Computer Science, UAF
Instructor: Glenn G. Chappell
Office: 201B Chapman
Office Hours: 10–12 MWF, or by appointment
Office phone: (474-)5736
E-mail: ffggc@uaf.edu
Paper mailbox: Inside the CS Department office, 202 Chapman

Announcements

Course Materials

Materials are listed with the most recent at the top.

Week Class Meetings Readings & Homework Handouts, Sample Code, Etc.
Week 11 
11/16–11/20 
  • 11/19: Reflection mapping (cont’d); environment maps
    Lecture notes
  • 11/17: Textures & lighting; reflection mapping
    Lecture notes
 
  • spheremap_shaders.zip [ZIP archive]
    Shaders for use with trytexture.cpp
    Sphere mapping
    Posted Tue 11/17
  • reflmap_shaders.zip [ZIP archive]
    Shaders for use with trytexture.cpp
    Simple (too simple) reflection mapping
    Posted Tue 11/17
  • texlight_shaders.zip [ZIP archive]
    Shaders for use with trytexture.cpp
    Texture mapping with per-fragment lighting
    Posted Tue 11/17
Week 10 
11/9–11/13 
  • 11/12: Introduction to textures (cont’d)
  • 11/10: Lighting details; communicating with shaders; introduction to textures
 
  • simpletex_shaders.zip [ZIP archive]
    Shaders for use with trytexture.cpp
    Basic texture mapping
    Posted Thu 11/12
  • trytexture.cpp [C++ source]
    Program for testing texture shaders
    Requres GLEW, shader source code
    Posted Thu 11/12
  • attenuate_shaders.zip [ZIP archive]
    Shaders for use with tryshader.cpp
    Quadratic lighting attenuation
    Posted Tue 11/10
Week 9 
11/2–11/6 
  • Assignment 4
    Due Tue 11/17
    Posted Sat 11/7
    Revised Tues 11/10
  • spotlight_shaders.zip [ZIP archive]
    Shaders for use with tryshader.cpp
    Per-fragment spotlight using Blinn-Phong reflection model
    Posted Thu 11/5
  • mytorus_shaders.zip [ZIP archive]
    Shaders for use with tryshader.cpp
    Computes vertex positions, normals, and per-fragment lighting
    Posted Thu 11/5
  • facetnorm.cpp [C++ source]
    Facet-normal demo
    Requres GLEW, shader source code
    Can use same shaders as those for tryshader.cpp
    Posted Thu 11/5
  • perfrag_shaders.zip [ZIP archive]
    Shaders for use with tryshader.cpp
    Per-fragment lighting using Blinn-Phong reflection model
    Posted Tue 11/3
  • blinnphong_shaders.zip [ZIP archive]
    Shaders for use with tryshader.cpp
    Per-vertex lighting using Blinn-Phong reflection model
    Posted Tue 11/3
  • Quiz 4 Solutions [PDF]
    Posted Tue 11/3
Week 8 
10/26–10/30 
 
  • phong1_shaders.zip [ZIP archive]
    Shaders for use with tryshader.cpp
    Per-vertex lighting using Phong reflection model
    Posted Thu 10/29
  • lambert_shaders.zip [ZIP archive]
    Shaders for use with tryshader.cpp
    Per-vertex lighting using Lambertian reflection model
    Posted Thu 10/29
  • plain_shaders.zip [ZIP archive]
    Shaders for use with tryshader.cpp
    “Plain” shaders: no lighting
    Posted Thu 10/29
  • tryshader.cpp [C++ source]
    Program for testing various shaders
    Requres GLEW, shader source code
    Posted Thu 10/29
    Revised Sun 11/1
  • shadercheck.cpp [C++ source]
    Simple shader demo
    Requres GLEW
    Posted Tue 10/27
Week 7 
10/19–10/23 
  • 10/22: Midterm Exam
  • 10/20: HSR (cont’d); general review
    Lecture notes
   
Week 6 
10/12–10/16 
 
Week 5 
10/5–10/9 
  • 10/8: 3-D viewing (cont’d); hierarchical objects
    Lecture notes
  • 10/6: 3-D viewing (cont’d)
 
  • arm.cpp [C++ source]
    Hierarchical object demo
    Posted Thu 10/8
  • flyer2.cpp [C++ source]
    Simple flight simulator (improved)
    Posted Tue 10/6
    Revised Thu 10/8
Week 4 
9/28–10/2 
  • 10/1: 3-D viewing
    Lecture notes
  • 9/29: The details of transformations
  • flyer1.cpp [C++ source]
    Simple flight simulator
    Posted Tue 10/6
  • view3d_2.cpp [C++ source]
    Simple 3-D viewing (improved)
    Posted Thu 10/1
  • view3d_1.cpp [C++ source]
    Simple 3-D viewing
    Posted Thu 10/1
Week 3 
9/21–9/25 
  • 9/24: Picking (cont’d); introduction to 3-D; vectors & matrices
  • 9/22: Picking
 
Week 2 
9/14–9/18 
 
  • follow.cpp [C++ source]
    Simple mouse usage
    Posted Thu 9/17
  • bounce.cpp [C++ source]
    Animation demo
    Posted Tue 9/15
Week 1 
9/8–9/11 
  • 9/10: OpenGL primitives; events; the keyboard in GLUT; a little about transformations
    Lecture notes
  • 9/8: Introduction to OpenGL; GLUT programs
    Lecture notes
  • interact.cpp [C++ source]
    Demo of simple interaction & transformations
    Posted Thu 9/10
    Distributed in class Tue 9/15
  • tryme.cpp [C++ source]
    An OpenGL/GLUT program to compile and execute
    Used in Assignment 1, Exercise A
    Posted Wed 9/9
  • sample3d.cpp [C++ source]
    Sample 3-D OpenGL/GLUT program
    Posted Tue 9/8
    Distributed in class Tue 9/8
  • sample2d.cpp [C++ source]
    Sample 2-D OpenGL/GLUT program
    Posted Tue 9/8
    Distributed in class Tue 9/8
Week 0 
9/3–9/4 
  • 9/3: Course overview; introduction to computer graphics
    Lecture notes
 
  • Syllabus
    Posted Thu 9/3
    Distributed in class Thu 9/3
    Revised Fri 9/4

External links last checked September 10, 2009.
Running GLUT Programs
This is my page about installing GLUT and compiling GLUT programs under various operating systems. It includes a downloadable version of the “freeglut” package for Windows.
GLEW: The OpenGL Extension Wrangler Library
A package for managing OpenGL extensions. Required for compiling and executing any of the shader code used in this course.
GLSL Tutorial
A nice tutorial on GLSL, at Lighthouse 3D (“a Resource for 3D Programmers on OpenGL, VRML, and Shockwave 3D”). I have found this tutorial useful for filling in gaps in my own knowledge. Recommended.
OpenGL Distilled, Chapter 2: Drawing Primitives [PDF]
This is a chapter from an OpenGL book: OpenGL Distilled by Paul Martz. I am not familiar with the book; however, based on this chapter, it looks pretty good. I include it here, because it has a nice explanation, with pictures, of the ten glBegin-style OpenGL primitives.


CS 381 Fall 2009 / Updated: 19 Nov 2009 / Glenn G. Chappell / ffggc@uaf.edu Valid HTML 4.01!