Office Hour  9:00~11:00AM, Wed or By appointment 

TA  ChihHsiang Yeh 
Week  Content  Notes  Assignment 

01  Introduction  [Note]  
02  Image Color and Cameras
 [Note] 

03  Color and Light
 [Notes] 

04  File Format and Compression
 [Notes] 

05 
 [Notes] 

06 
 [Notes] 

07  Image manipulation

 
08  Compositing
 [Notes] 

09  Transformation
 [Notes] 

10  View
Projection
Perspective
 [Notes] 

11  Clipping
 [Notes] 

12  Visibility
 [Notes] 

13  Rendering
 [Notes] 

14  Object Representation
 [Notes] 

15  Texture mapping
 [Notes] 

16  GPU Computation and Shading
 [Cuda] [Shaders] 

17  Global Illumination
 [Notes] [Advance] 

18  Animation
 [Notes] [Extra] 

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.

There will be 1 exams, counting for 20% of your grade.
 There will be a takehome final exam at the last class.
 Projects (15, 15, 20, 30% each): 80%
 Participation and Final: 20%
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
 Project 3: Trains and Roller Coasters ( YanLin Chen , YingSheng Luo )
 Project 3: Trains and Roller Coasters ( 鐘賢廣 , 林進仰 )
 Project 3: Trains and Roller Coasters ( 詹家棋 )
 Project 3: Trains and Roller Coasters ( 林德潔 )
 Project 3: Trains and Roller Coasters ( 莫立恆 , 陳政焬 )
 Project 3: Trains and Roller Coasters ( 林見軒 )
 Project 4: A (Tiny) Amusement Park and Water ( 詹家棋 )
 Project 4: A (Tiny) Amusement Park and Water ( 林德潔 )
 Project 4: A (Tiny) Amusement Park and Water ( 莫立恆 , 陳政焬 )
 Project 4: A (Tiny) Amusement Park and Water ( YanLin Chen , YingSheng Luo )