Computer Graphics
COMP 770 (236)

Syllabus
Syllabus
Schedule
Lecture Slides
Lecture 1: Introduction
Lecture 2: Screen space and world space
Lecture 3: 2D imaging and transformations
Lecture 4: 3D transformations - I
Lecture 5: 3D transformations - II
Lecture 6: Building and interacting with a 3D world
Lecture 7: Culling and clipping
Lecture 8: Triangle rasterization
Lecture 9: Texture mapping
Lecture 10: Illumination and shading - I
Lecture 11: Illumination and shading - II
Lecture 12: Advanced texture mapping
Lecture 13: Graphics hardware
Lecture 14: Programmable shaders
Lecture 15: Advanced OpenGL
Lecture 16: Visibility
Lecture 17: Ray tracing - I
Lecture 18: Ray tracing - II
Lecture 19: Global Illumination - I
Lecture 20: Global Illumination - II
Lecture 21: Shadows
Lecture 22: Curves and Surfaces - I & II
Lecture 23: Geometric Modeling
Lecture 24: Animation
Lecture 25: Image based rendering
Sample Code
SimpleOpenGL.py - Examples shown in class (Lecture 1)
Julia.py, julia.cpp - Julia set code used in class (Lecture 2)
ImagePlay.cpp - Transforming 2D images (Lecture 3)
TrackBall.zip - Rotating an object with a track ball (Lecture 6)
Luxo.cpp - Luxo lamp (Lecture 6)
TextureFilter.zip - Texture filtering example (Lecture 9)
Lighting.zip - Lighting example (Lecture 10)
EnvMap.zip - Environment map example (Lecture 12)
checker.rfx, wavy.rfx - RenderMonkey examples (Lecture 14)
ProjectiveTexture.zip - projective texturing example. Includes the wavy glsl vertex shader and render to texture (Lectures 12, 14, & 15)
Assignment#1 - OpenGL 3D Models and Interaction: Due 2/14/07 (before 11:59:59pm)
Specification
Skeleton code: Python, C++
Assignment#2 - Rendering pipeline: Due 3/05/07 (before 11:59:59pm)
Specification
Skeleton code: C++
Assignment#3 - Advanced texturing and programmable shaders: Due 3/26/07 (before 11:59:59pm)
Specification
Skeleton code: C++ (Note: This code is basically just a partially completed version of Assignment #1.)
Useful links for this assignment:
Virtual Terrain Project - Tons of useful information and resources for modelling terrains, skies, plants, etc.
Terragen - Can be used to generate terrains and sky maps
Textures created by Ben Cloward. - The extras section has some goodies like normal maps, light probes, and grass with alpha
Crinity - has some cool sky maps
Light probes from Paul Debevec
TurboSquid.com - Has lots of textures. Some free plant textures with alpha.
Assignment#4 - Ray tracing: Due 4/11/07 (before 11:59:59pm)
Specification
Skeleton code: C++
Links
OpenGL.org - Has documentation for OpenGL including the Reference Guide, the Programming Guide, and the OpenGL spec, documentation and links for GLUT, and lots of code examples.
MSDN - A good reference for OpenGL functions.
PyOpenGL - OpenGL for Python.
PyOpenGL Setup - A quick start guide for getting OpenGL running in Python on Windows.
GLUI - Simple OpenGL GUI library
GLEW - The OpenGL Extension Wrangler