In computer graphics, physically-based rendering relies on the abstractions of both geometric optics and radiometry to render realistic images. Geometric optics is the modeling of light propagation as discretized rays: an idealized, one-dimensional beam of light. Ray tracing is the simulation of light propogation with these discretized rays. Radiometry details the measurement of electromagnetic radiation, including visible light. Radiometry, in terms of geometric optics, is foundational to computer graphics.

Continue reading Radiometry.

Irradiance Caching

Irradiance Caching seeks to solve the computationally intensive problem of inter-diffuse reflectance. Irradiance is the power per unit square area incident on a surface. Given the irradiance at a point on a diffuse Lambertian surface, calculating the reflected radiance is as simple as first calculating radiosity by multiplying irradiance by the surface reflectance, giving you power reflected per unit area. Lambertian surfaces reflect light equally in all directions so dividing by pi (projected solid angle of the hemisphere) gives you the reflected radiance, power per unit area per unit projected solid angle. The Irradiance Caching algorithm calculates irradiance sparsely across a scene, caches these values, interpolates cached values, and finally calculates reflected radiance for diffuse surfaces.

Continue reading Irradiance Caching.

Scientific Visualization

These are my required homework projects for CS5630, taught at the University of Utah in Fall of 2004 by Ross T. Whitaker.

Continue reading Scientific Visualization.

Ray Tracer

These are my homework projects from CS6620. A class I took in the Spring of 2005 from Steve Parker at the University of Utah. Each page represents a single homework assignment.

Continue reading Ray Tracer.

Path Tracer

Here are the projects from CS7650, taught Summer 2004 at the University of Utah, by Peter Shirley. This project is not yet complete.

Continue reading Path Tracer.