Introduction to Computer Graphics
2014 Spring
Instructors Yu-Chi Lai
Office Hour

9:00~11:00AM, Mon or By appointment

TA Nai-Sheng Hsu
Hao-Yu Chang
Guo-Wei Li
Lectures
Week Content Notes Assignment

1

Introduction

[Note] 

2

Image and Cameras

  • Image
  • Image capture
[Note] 
  • Fundamental of Computer Graphics Ch. 20

3

Color and Light

[Note] 
  • Fundamental of Computer Graphics Ch. 20
  • Project 1 announce and will be due 03/19/2014.

4

File Format and Compression

  • Image file formats
  • Compression
    • Lossless
    • Loss 
    • GIF
    • JPEG
[Note] 
  • Project 1 announce and will be due 03/19/2014.

5

Color Quantization

  • Uniform
  • Populosity
  • Median cut
[Note] 
  • Project 1 announce and will be due 03/19/2014.

6

Dithering

  • Threshold
  • Brightness
  • Thresholding
  • Pattern
  • Diffusion
  • Color dithering
[Note] 
  • Project 1 announce and will be due 03/19/2014.

7

Image manipulation

  • Point operations
  • Neighboring operations: image mapping
  • Filtering
  • Resampling
  • NPR
[Notes] 
  • Project 1 announce and will be due 03/19/2014.

8

Compositing

  • Optical compositing and mattes
  • The alpha channel
  • Compositing operators
  • Premultiplied alpha
  • Matte extraction
[Notes] 
  • Project 1 announce and will be due 03/19/2014.

9

Transformation

  • Graphics Toolkit
  • Coordinate system
  • 2D Transformation
  • Composing transformations
  • Homogeneous coordinates
  • 3D Transformations
  • Directions
  • Rotation
[Note] 
  • Project 2 announce and will be due 04/09/2014.

10

View

  • Graphics transform pipeline
  • Intro. to viewing
  • Viewing transformations
  • Describing cameras and views

Projection

  • Orthogonal projection

Perspective

  • Simple perspective
  • Vanish points
  • OpenGL setting
[Note] 
  • Project 2 announce and will be due 04/09/2014.

11

Clipping

  • Liang-Barsky Details
  • Weiler-Atherton clipping algorithm
  • Drawing points and lines
[Note] 
  • Project 2 announce and will be due 04/09/2014.

12

Visibility

  • Z-Buffer and transparency
  • A-buffer
  • Area subdivision
  • BSP Trees
  • Exact Cell-Portal
[Notes] 
  • Project 2 announce and will be due 04/09/2014.

13

Rendering

  • Illumination Models
  • Shading Models for Polygons
  • Surface Detail
  • The Rendering Pipeline
[Note] 

14

Object Representation

  • Introduction to modeling: description of shape
    • Explicit and implicit
  • Parametric Curves
    • B-Spline
  • Parametric Surfaces
  • Modeling with triangle meshes
  • Obtaining polygonal meshes
  • Hierarchical modeling
  • Instancing and Parametric Instancing
  • Constructive Solid Geometry
  • Sweep Objects
  • Octrees
  • Subdivision schemes
[Note] 

15

Texture mapping

  • Graphics Pipeline
  • Texture Mapping
  • Mapping Techniques
  • Advanced Texturing
[Note] 

16

GPU Computation and Shading

  • CPU and GPU
  • GPU Hardware
  • GPU Memory
  • CUDA
  • Graphics Pipeline
  • GPU programming language
  • CG
  • HLSL
  • GLSL
[Cuda Note]  [Shader Note] 

17

Global Illumination

  • Shadow
  • Transparency
  • Whitted ray tracing
  • Distributed ray tracing
[Note]  [Advanced Note] 

18

Animation

  • What is Animation ?
  • Traditional Animation
  • Key-Frame Animation
  • Hierarchical Modeling
  • Kinematics
  • Free-From Deformation
[Note]  [Extra] 
PreRequisites

Technically, Data Structures and some familiarity with linear algebra.

Reference books

red_book.jpg

Mason Woo, et al. The OpenGL Programmer's Guide.

  • This is sometimes known as the "red book." 

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. 

  • There will be some readings from this book, and its an important reference.

rtr3.jpg

Tomas Akenine-Mller and Eric Haines. Real Time Rendering, 3e.

  • This book is specifically about real-time rendering, and is very useful if you're interested in interactive stuff like games. It is really well written, and has great discussions of a lot of the basic topics. The new edition just came out (so new its out of stock most places), and is quite encyclopedic. Its an awesome reference book, but a little hard to learn from, so I highly recommend it if you are serious about graphics. 

 

books.jpg

Gregory Junker, Pro OGRE 3D Programming (Expert's Voice in Open Source)

This book gives you the fundamental information for OGRE programming.

 

 

Exam

There will be 1 exams, counting for 20% of your grade.

  • There will be a take-home final exam at the last class. 


Grading
  • Projects (15, 15, 20, 30% each): 80%
  • Participation and Final: 20%
Syllabus

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