CSE168 Final Project

For my final project, I took a little bit different approach. Instead of focusing on making a single image, I decided to make a movie. Since I dont feel like I have a lot of artistic talent, I decided to challenge myself by implementing as many cool rendering techniques as possible and optimizing them to the point that I could render a 30-45s movie with all these effects strung together. I was also able to round up some motion capture data of myself and a texture and model of my head, so I used that to display my algorithms.

Stuff I implemented:

  1. Image-based texture mapping with bilinear filtering.
  2. Normal mapping using object-space normal maps.
  3. Glossy reflection material.
  4. Ambient occlusion material.
  5. Photon mapping
    1. Indirect diffuse/global illumination using a global photon map with final gather rays.
    2. Caustics using a caustics photon map.
  6. Irradiance caching to speed up the global illumination/final gather enough to render enough frames for a movie. (Note: my irradiance caching code is based very heavily on the irradiance caching code in pbrt, so credit where credit is due.)
  7. Simple uniform grid supersampled antialiasing.
  8. Fresnel-weighted reflection/refraction using the Schlick approximation. (Im not sure if this code is 100% correct or not, but is seems to give the more reflection at grazing angles effect.)

Heres the final product: CSE168 Final Project.mpg .

Final rendering competition image. I won honorable mention. :)