Instructors | Yu-Chi Lai |
---|---|
Office Hour | 9:00~11:00AM, Wed or By appointment |
TA | Chun-Wei Wang Kuang-Yi 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 Akenine-Mller 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 take-home 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
- Event-drivenprogramming
- 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
- Z-buffer 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, B-reps
- Implicit surfaces, quadrics, blobs
- Booleans, CSG
- Fractals
- GPU Related
- Shaders
- CUDA and OpenCL
- Raytracing
- Ray-surface 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 ( Shih-Hsuan 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) ( Shih-Hsuan Hung )
- Project 5: A (Tiny) Amusement Park ( 林彥佑 )
- Project 5: A (Tiny) Amusement Park ( Hong-Nian Kuo )
- Project 5: A (Tiny) Amusement Park ( Chih-Hsiang Yeh )
- Project 5: A (Tiny) Amusement Park ( 楊承翰 )
- Project 5: A (Tiny) Amusement Park ( Nai-Sheng Syu )
- Project 5: A (Tiny) Amusement Park ( 高鵬淵 )