Instructors  YuChi Lai 

Office Hour  9:00~11:00AM, Wed or By appointment 
TA  ChunWei Wang KuangYi Chen 
Week  Content  Notes  Assignment 

1  Introduction  [Note] 

2  Image and Cameras
 [Notes] 

3  Color and Light
 [Notes] 

4  File Format and Compression
 [Notes] 

5  Color Quantization
 [Notes] 

6  Dithering
 [Notes] 

7  Image manipulation
 [Notes] 

8  Compositing
 [Notes] 

9  Transformation

 
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 Notes] [Shader Notes] 

17  Global Illumination
 [Notes] [Advance Notes] 

18  Animation
 [Notes] 

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 1 exams, counting for 20% of your grade.
 There will be a takehome final exam at the last class.
 Projects (10, 10, 15, 15, 30% each): 80%
 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 ( 許乃晟 )
 Project 3: Trains and Roller Coasters ( 楊承翰 )
 Project 3: Trains and Roller Coasters ( 郭鴻年 )
 Project 3: Trains and Roller Coasters ( 李偉宇 )
 Project 3: Trains and Roller Coasters ( ShihHsuan Hung )
 Project 4: Water Surface and Rendering (GPU Shader, CUDA and Raytracing) ( 許乃晟 )
 Project 4: Water Surface and Rendering (GPU Shader, CUDA and Raytracing) ( 高鵬淵 )
 Project 4: Water Surface and Rendering (GPU Shader, CUDA and Raytracing) ( 楊承翰 )
 Project 4: Water Surface and Rendering (GPU Shader, CUDA and Raytracing) ( 郭鴻年 )
 Project 4: Water Surface and Rendering (GPU Shader, CUDA and Raytracing) ( ShihHsuan Hung )
 Project 5: A (Tiny) Amusement Park ( 林彥佑 )
 Project 5: A (Tiny) Amusement Park ( HongNian Kuo )
 Project 5: A (Tiny) Amusement Park ( ChihHsiang Yeh )
 Project 5: A (Tiny) Amusement Park ( 楊承翰 )
 Project 5: A (Tiny) Amusement Park ( NaiSheng Syu )
 Project 5: A (Tiny) Amusement Park ( 高鵬淵 )