CSC 240: Computer Graphics (Fall 2006)

Last Updated: 
[Soon to be revised for Fall 2008!]

InstructorJoseph O'Rourke
Textbook: None!  This course is somewhat unusual and is not approximated by any existing textbook. This saves you money but puts a demand on your attendance, attention, and note-taking.
Location: Burton 209.
Time: TR 9:00-10:20AM.
Prerequisites: How the Internet Works (CSC102) or equivalent knowledge; Computer Science I (CSC 111); Four yrs of HS math.
Two Tracks: The course has two tracks in the assignments: (1) for those counting it for Computer Science major programming or theory credit, or (2) for those counting it a generic "elective," e.g., for the Digital Arts Minor.   Computer Science majors are welcome to follow Track 2 if it is not fulfilling the programming or theory requirements. And anyone nominally in Track 2 can select the Track-1 assignment any week.
Programming Language: I am assuming only exposure to Python from Computer Science I. Programming experience in C or C++ is not required. One-course experience in C++ or Java will suffice to supplant experience with Python.
Software:

Course Structure:  We meet two times a week; there is no lab, although we will do many "minilabs" during class time.  There will be one assignment per week, due (generally) each Wednesday at midnight. Collaboration is permitted, even encouraged, on assignments.  See schedule below for details.

Exams:  There will be two one-week take-home "exams," which are very much like assignments except that (a) they focus more on theory whereas the assignments focus on programming, and (b) unlike assignments, there is no collaboration permitted. There is also a final (structured) project, due on the last day of the exam period.

Grades:

8 Assignments
60%
Take-home Exams
20%
Project
20%

Grading Numerology

Late Policy

Resubmission Policy

O'Rourke Office Hours & Schedule


Anonymous feedback to Joe on any subject.

Syllabus


Last Update:
[To see the web-access restricted assignments and labs, please write me for the name and password.]
Week/ Notes Dates Software Topics (general) Topics (specific) Links
Animations
Labs & Assignments
1
Notes1
7 Sep Postscript Introduction, overview Stack, Ops, Coord system, path, stroke, ... First Guide to Postscript ;
Postscript Tutorial ;
PostScript Language Tutorial & Cookbook ;
PS Blue book examples
Luxo Jr. Lab1
Lab2

A1 due 14 Sep
BOTW
2
Notes2
Notes3
12,14 Sep Postscript 2D Transformations Variables, Procedures
gsave; grestore
Boolean, If, For
Text
Transformations: translate, rotate, scale
Windows: GSview;
[also: emacs]
Mac OS X: Ghostscript

S.ps
circles.ps
fonts.ps
spiral.ps
Red's Dream  Lab3
Lab4
Lab5
3
Notes4
Notes5
19,21 Sep OpenGL

Graphics hardware; 2D Transformations; Event programming

OpenGL basics, graphics primitives
OpenGL hardware pipeline
Python, PyQt, PyOpenGL
LUT, video cards, raster scans.
Liquid crystal displays glPushMatrix(), Pop
Matrix stack
OpenGL pipeline
Python
PyQt
PyOpenGL
(PyOpenGL- 2.0.2.01.py2.4- numpy23.exe)

glrectangle.py
 
A2 due 21 Sep
BOTW

Lab6
4
Notes6
(26)MtDy, 28 Sep OpenGL Animation in OpenGL
Misc. Python/OpenGL
Animation revisited
A3 preview
glcircrot.py
Tin Toy
Lab7
Lab8
A3 due 29 Sep
BOTW
5
Notes7
Notes8
3,5 Oct Mathematica
GameMaker
Mathematics of transformations

Game programming: basic components
Transformation matrices
Composition of;
Homogenous coords
Mathematica

GameMaker Resources:
Rooms, Objects, Sprites, Events, Actions, etc.
2D.Matrix.nb
Knick Knack
Lab9
A4 due 12Oct
BOTW

Lab10
  10 Oct   [Fall Break ]        
6
Notes9
12 Oct GameMaker Game programming Events & Actions
Spites
Collisions
Transform Sprites
Drawing Events; Drawing Text
Collision effects
Hit.the.Rock.0.gm6
Hit.the.Rock.1.gm6
Ice Age: The Meltdown Lab11
A5 due 20Oct
BOTW
7
Notes10
Notes11
17,19 Oct

GameMaker;

Illustrator

Game programming: advanced effects

Bezier curves

Scripts
GameMaker Language
Particle Systems: Effect;
system, types, emitters, deflectors, destroyers, etc.

2D Curves
GM Paths: definition & use
Bezier curves: Intro
Adobe Illustrator

Hit.the.Rock.2.gm6
Hit.the.Rock.3.gm6
Hit.the.Rock.4.gm6
Toy Story I: Opening Scene Lab12
A6 Take-Home due 26Oct
BOTW/Answers
8
Notes12
Notes13
24,26 Oct Illustrator

SketchUp
Bezier curves & surfaces

3D design; 3D printing
Parametric representations
Bezier Curves: G.M.T
Bezier Surfaces
[Subdivision surfaces]

3D-Printing
Z-corp Printer
Bezier.GMT.nb

Bezier curve applet (UNC)
Bezier surfaces: applet1 (OGI); applet2 (Cornell)
Teapot
Toy Story I: Toys alive Lab13
[no assignment]
Lab14
9
Notes14
31,(2) Nov SketchUp 3D file structures
Subdivision surfaces

[2 Nov: NSF Advisory Mtg-- no class!]
3D file types: .stl, .obj, VMRL
Normal vectors; Reversing in SketchUp

Subdivision surfaces
Subdiv. Surf (UW) Catmull-Clark; Wiki Geri's Game Lab15
A7 due 9 Nov
BOTW
10
Notes15
Notes16
7,9 Nov Mathematica Perspective math Perspective: Brunelleschi
Vanishing pts, lines, horizon
Perspective math; 4x4 Matrix; Homog. Coords.
Perspective.Graphics.nb
Perspective.Homogenous.nb
Toy Story II: Geri; Al Lab16

A8 due 16 Nov
BOTW
11
Notes17
Notes18
14,16 Nov POV-Ray Ray-tracing renders: Introduction POV-Ray: Intro
Coord system, camera, lights, colors
Shapes: Sphere, plane
"Textures"

Reflectance Models: ambient, diffuse, specular.
The Phong Reflectance model
POV-ray: texture{}; pigment{}; finish{}.
POV-Ray Tutorial
ball5.pov
Monster's Inc: Sully's fur Lab17: balls
Lab18: tori
11+
Notes19
Notes20
21 Nov POV-Ray Ray-tracing project global ambient light
Scene descrip. lang.:
#declare identifiers; #local
#if () ... #end
float expressions, opers
golds.inc, etc.
Project Preview
Project Links: 2005, 2004, 2003

chain.pov
Monster's Inc: Boo Lab19: chain
  23   [Thanksgiving]        
11
Notes21
Notes22
28,30 Nov POV-Ray Ray Tracing Shading; bumping normals
Ray-object intersections
CSG: Constructive Solid Geometry
Lathe objects; splines

Beene's Shading Notes

bumps.pov
difference.pov
lathe.pov
disk.pov
  Lab20: bumps

A9 Take-Home due 14 Dec
BOTW/Answers
12
Notes23
Notes24
5,7 Dec POV-Ray Ray Tracing algorithm; Radiosity Depth of tracing
Ray tracing complexity
Accelerating ray tracing
Weaknesses in RT
Bounding Box Hierarchy
RT-ing CSG
Antialiasing: supersampling
Extended light sources
[Atmospheric effects]
Radiosity
Xmas.pov
towers.pov
Incredibles: Hair Lab: Project
13
Notes25
12,14 Dec POV-Ray Texture mapping
Texture mapping: color
Bump mapping: normals
image_maps: planar, spherical, cylindrical
uv_mapping: sphere, box

Texture Library

ball.imagemap.pov
box.imagemap.pov
  Lab21: image_map

Project Specs
  22 Dec   [last day of final exam period]
   
 
Project due
2006 Projects!

 

Five College Graphics Courses