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