Introduction to Computer Graphics
2009 Fall
Instructors Yu-Chi Lai
Office Hour

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

TA Xiang-Yu Song
Week Content Notes Assignment





  • Image
  • Tri-Chromacy
  • Color Spaces
  • Color Calibration
  • An RGB Color Space program for windows.
  • An HSV Color Space program for windows.
  • Source code for color space programs
[Note]  [Note] 


  • Color Quantization
  • Dithering
  • Signal processing for image editing
  • Filtering
  • Sampling and Reconstruction
  • Notes on Floyd-Steinberg dithering
  • Filter examples


  • Reconstruction and aliasing
  • Compositing
  • Non-photorealistic rendering
  • 3D Graphics Toolkits


  • Transformations
  • The viewing pipeline
  • Window Space
  • Canonical View Space
  • Orthographic projection
  • Defining cameras
  • Reading: Shirley, Chapter 5, 6.1, 6.2
  • Reading: Red Book, Chapter 3, "Viewing and Modeling Transformations",

"Projection Transformations", and "Viewport Transformation".



  • Defining cameras
  • Perspective Projection
  • Clipping
  • Reading: Shirley, Chapter 6.3 - 6.5, 11.1, 11.2, 11.3.1, 11.4
  • Reading: Red Book, At this point we have covered all the relevant portions of Chapter 3 of the OpenGL Programming Guide.


  • Liang-Barsky Details
  • Weiler-Atherton clipping algorithm
  • Drawing points and lines
  • Visibility
    • Z-Buffer and transparency
    • A-buffer
    • Area subdivision
    • BSP Trees
    • Exact Cell-Portal
  • Lighting and Shading ? Part 1
  • Reading: Shirley, Chapter 3.5 - 3.7
  • "Basic Raster Graphics Algorithms for Drawing 2D Primitives", sections 3.9.4


  • Midterm
  • Visibility / Hidden Surface Removal
  • Lighting and Shading
  • "Elimination of Hidden Surfaces"
  • Reading: Shirley, Chapter 3.6, 3.7, 7.1, 7.2, and Chapter 8
  • Reading: Red Book, At this point we have covered all the relevant portions of Chapter 5 of the OpenGL Programming Guide.


  • Light sources
  • Shading interpolation
  • Reading: Shirley, Chapter 2.11, 10.3, 10.4
  • Reading: Red Book, At this point we have covered all the relevant portions of Chapter 9 of the OpenGL Programming Guide.


  • Shading interpolation
  • Texture Mapping
  • Mapping techniques
  • Reading: Shirley, Chapter 2.11, 10.3, 10.4
  • Reading: Red Book, At this point we have covered all the relevant portions of Chapter 9 of the OpenGL Programming Guide.


  • Modeling
  • Parameteric Curves
    • Cardinal Curve
    • Bezier Curve
    • Cubic Bspline Curve
  • Reading: Shirley, Chapter 13 and Chapter 10.
  • Reading: Spline notes that are a draft for the 2nd edition of Shirley's book. Comments on these notes are desired by Prof. Gleicher.


  • Modeling with triangle meshes
  • Obtaining polygonal meshes
  • Hierarchical modeling
  • Instancing and Parametric Instancing
  • Constructive Solid Geometry
  • Sweep Objects
  • Octrees
  • Subdivision schemes
  • Reading: Chapter 2 of the OpenGL Programming Guide
  • Reading: Shirley Section 10.3


  • Subdivision schemes
  • Implicit surfaces
  • Animation
    • Key-frame (hand animation)
    • Motion capture
    • Procedural


  • Ray-tracing
  • Soft shadows
  • More hardware rendering


  • More hardware rendering
  • GLSL
  • Image-based rendering

Technically, Data Structures and some familiarity with linear algebra.

Reference books


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.


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. 



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).


  • 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
  • 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