Instructors  YuChi Lai 

Office Hour  9:00~11:00AM, Tue or By appointment 
Week  Content  Notes  Assignment 

01 
 
02  Image Color and Camera
 
03  Color and Light
 
04  File Format and Compression
 
05  Color Quantization
 
06  Dithering
 
07  Image manipulation
 
08  Compositing
 
09  Transformation
 
10  View
Projection
Perspective
 
11  Clipping
 
12 
Visibility
 
13  Rendering
 
14  Introduction to modeling: description of shape
 
15  Parameteric representation
 
16  Object representation
 
17  Subdivision
 
18  Texture mapping
 
19  GPU Shading
 
20  Parallel computation with GPU
 
21  Global Illumination
 
22  Animation

 Reference interactive program website: http://graphics.cs.brown.edu/research/exploratory/freeSoftware/catalogs/repositoryApplets.html
 Mason Woo, et al. The OpenGL Programmer's Guide.
The current edition is the 6th edition, but for the purposes of this class an older edition would be OK too. If you don't want to buy this book, the complete contents of the older version is online in html. There used to be an online PDF version as well, but it seems to have vanished. The old edition is OK for most things, the critical chapter in the 6e will be provided online in class.

 Tomas AkenineMller and Eric Haines. Real Time Rendering, 3e.

There will be no exams
 Projects (15, 15 and 30% each): 60%
 Participation and review: 40%
Tentative Syllabus
 Introduction
 Administrative matters
 What's computer graphics
 Light and the human visual system
 Color
 Image Algorithms and 2D Special Effects
 Images, quantization and sampling
 Image manipulations
 Flood fill, dithering
 Point processing (contrast enhancement, compositing)
 Filtering
 Raster graphics
 Coordinate systems and transformations
 Homogeneous vector and matrix notation
 2D/3D transformations
 Chaining transformations
 Nonlinear transformations (free form deformation)
 The graphics pipeline and toolkits
 Graphics programming and OpenGL
 Eventdrivenprogramming
 3D Viewing and Projection:
 Perspective projection
 Viewing coordinate systemsand view volumes
 Clipping
 Hidden surface removal
 Introduction to Visibility
 Rendering
 Line and polygon scan conversion
 Painter's algorithm
 Zbuffer algorithm
 Local shading models
 Illumination and reflection
 Gouraud & Phong shading
 Texture mapping
 Modeling Hierarchies
 What hierarchies are and why we use them
 Matrix stack primitives
 Hierarchy algorithms
 Modeling examples
 Getting the right "control knob"
 Hierarchies w/nonlinear transformations
 Interface and implementation issues
 Geometric Modeling
 Modeling with polygons
 Spline curves: natrual, hermite, bezier, etc.
 Recursive subdivision, forward differencing
 Bicubic surfaces
 Solid primitives, sweeps, Breps
 Implicit surfaces, quadrics, blobs
 Booleans, CSG
 Fractals
 GPU Related
 Shaders
 CUDA and OpenCL
 Raytracing
 Raysurface intersection testing
 Ray casting
 Shadows and Transparency
 Recursive ray tracing
 Spatial data structures for optimization
 Global shading
 Animation
 Traditional cel animation
 Keyframes: state space points and trajectories
 Inbetweening: linear interpolation
 Interpolating splines, slow in and out, etc.
 Procedural animation
 Inverse Kinematics
 Dynamics and control
 Interface and implementation issues
 Other topics