Instructors  YuChi Lai 

Office Hour  9:00~11:00AM, Mon or By appointment 
TA  XiangYu Song 
Week  Content  Notes  Assignment 

01  Introduction  [Note]  
02 
 [Note] [Note]  
03 
 [Note]  
04 
 [Note]  
05 
"Projection Transformations", and "Viewport Transformation".  [Note]  
06 
 [Note]  
07 
 [Note]  
08 
 [Note]  
09 
 [Note]  
10 
 [Note]  
11 
 [Note]  
12 
 [Note]  
13 
 [Note]  
14 
 [Note]  
15 

Technically, Data Structures and some familiarity with linear algebra.
 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.

 Gregory Junker, Pro OGRE 3D Programming (Expert's Voice in Open Source) This book gives you the fundamental information for OGRE programming.

There will be 2 exams, counting for 30% of your grade.
 There will be an evening midterm exam:
 There will be a final exam, in the time slot given by the registrar.
 Exams are difficult to reschedule, and arrangements must be made ahead of time. Please contact me at the beginning of the semester if you foresee there being a problem.
 Homework : 10%
 Projects (15, 12.5, 12.5, 20% each): 60%
 Midterm: 10%
 Final: 10%
Homework is written questions. Late assignments may be handed in. The TA may accept them at his/her discretion. In particular, the TA will not accept assignments turned in after the assignment has been graded (which may be soon after the due date), and will not be accepted after the answers are posted. Late assignments will be noted and will be penalized. It is better to turn in a late assignment than to not turn in anything.
A portion of the exam may be taken from the written assignments. The problems may not be exactly the same (e.g. some of the numbers may be changed).
Assignments:
 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
 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