Course Information


Image input and output devices such as cameras and displays, graphics hardware and software, input technologies and interactive techniques, typography and page layout, light and color representations, exposure and tone reproduction, image processing and compression, sampling, aliasing and antialiasing, two- and three-dimensional geometry, modeling techniques including curves and surfaces, reflection models and illumination algorithms, basic methods of animation, and information visualization.


Shirley and Marschner, Fundamentals of Computer Graphics, 3rd ed. (in a pinch 2nd ed. is ok)

- Shreiner et al., The OpenGL Programming Guide, 6th or later ed.
- Angel, OpenGL: A Primer, 3rd ed.
- ... or any other decent OpenGL programming guide that covers shaders (GLSL)

Other books which you are encouraged to consult (get the latest edition you can find):
- Foley, van Dam, Feiner and Hughes, Computer Graphics: Principles and Practice in C
- Hearn and Baker, Computer Graphics, C Version
- Angel, Interactive Computer Graphics: A Top-Down Approach with OpenGL


Day Topic Slides Handouts and Reading
Jul 19 Introduction 01_intro - Harmonic Fluids
- The AlloSphere
- The Hubble Ultra Deep Field in 3D
Jul 22 Light and Color 02_light_color - Doug Kerr's excellent introduction to the CIE 1931 spaces
- Shirley Ch. 20 (Light) and 21 (Color)
Jul 26 Cameras, Displays and Compression 03_cam_disp_cmpr - Stollnitz, DeRose and Salesin, Wavelets for Computer Graphics: A Primer, Part 1
Jul 29 Image Processing 04_imgproc - Shirley Ch. 3 (Raster Images) and 9 (Signal Processing)
- Smith and Blinn, Blue Screen Matting, SIGGRAPH '96
- An advanced review of blue/green screen matting
Aug 2 Geometry 05_geometry - Shirley Ch. 2 (Miscellaneous Math, excluding 2.5 and 2.7 for now) and 6 (Transformation Matrices)
- Optional: Shirley 2.7 (Triangles), Ch. 5 (Linear Algebra)
Aug 5 Geometry (contd)
Aug 9 Rendering 1 06_rendering1 Readings:
- Shirley Ch. 4 (Ray Tracing) and 13 (More Ray Tracing)
- Introductory articles from Paul Rademacher, and HyperGraph

Extra Stuff:
- Stuff I wrote a long time ago (might have some errors, please let me know)
- A discussion of how to compute reflected and refracted rays
- POV-Ray homepage and Hall of Fame
Aug 12 Rendering 1 (contd)
Aug 16 Rendering 2 07_rendering2 Readings:
- Shirley Ch. 8 (The Graphics Pipeline) and 2.7 (Triangles)
- Joe Groff's OpenGL tutorial

Extra Stuff:
- Any OpenGL programming guidebook that covers programmable shaders (OpenGL 2.1 or later). Look particularly at the commands we covered in class, and related ones.
- The OpenGL SDK documentation.

(Warning: glBegin/glEnd were deprecated in OpenGL 3.0 and removed in 3.1. We studied them in class for pedagogical reasons, but modern OpenGL uses buffer objects to draw primitives.)
Aug 19 Rendering 2 (contd)
Aug 23 Rendering 3 08_rendering3 Readings:
- Shirley Ch. 8 (The Graphics Pipeline) and 18 (Using Graphics Hardware)
- Lighthouse 3D's GLSL tutorial
- Wolfe, Teaching Texture Mapping Visually
Aug 26 Rendering 3 (contd)
Aug 30 Hands-on with Shaders Shader Maker (Win/Mac/Linux)
Sep 2 Curves and Surfaces 09_curv_surf
Sep 16 Curves and Surfaces (contd)
Sep 20 Animation and Interaction 10_anim_interact Shirley Ch. 7 (Animation)
Sep 27 Animation and Interaction (contd)
Sep 30 Programmable Graphics Hardware Niels Joubert's slides

Extra Stuff:
- Jim Clark, The Geometry Engine, 1982
- Kurt Akeley, RealityEngine Graphics, 1993
- NVIDIA Fermi Compute Architecture Whitepaper, 2009, Architecture Overview p.7 to p.11
- NVIDIA Pascal Compute Architecture Whitepaper, 2016 (GPUs now ubiquitous for machine learning)
Oct 4 Programmable Graphics Hardware (contd)
Oct 8 Polygon Meshes 12_meshes
Oct 18 Typography and Layout Niels Joubert's slides
Oct 21 Forward and Inverse Kinematics 13_kinematics
Oct 25 Forward and Inverse Kinematics (contd)
Oct 28 Largescale Rendering 14_large_render
Nov 4 Sampling, Aliasing and Quo Vadis? 15a_sampling 15b_extra SIGGRAPH Antialiasing Course Notes



Assignments will be due at Midnight (23:59:59 sharp) on the scheduled date. This class has no free late days. You can submit your assignment one day late for a 50% penalty.

Assignment Description Due Date (IST) Weight
A1 (results) Render the Mandelbrot Set Aug 1 23:59:59 5%
A2 Feature-Based Image Metamorphosis Aug 18 23:59:59 10%
A3 Raytracing (a) Sep 4 23:59:59
(b) Oct 2 23:59:59
(a) 10%
(b) 10%
A4 OpenGL Game Map Loader Nov 4 23:59:59 20%