Non-Photorealistic Rendering

Implementing a clever algorithm developed by Aaron Hertzman by differing the brush sizes and stroke length and other factors this program can create images to imitate different artistic styles, such as impressionism and pointillism.

Photon Mapping

Using backwards ray tracing, tracing from light sources as opposed to through the viewing plane by shooting special photon rays from light sources, this program combines with a simple ray tracer to provide a model for global illumination, particularly on the standard Cornell box.

Procedural Texture Generation and Particle System

This program uses time-varying 3D procedural texture mapping techniques to simulate smoke and fire, with sparks simulated by a particle system. Smoke and fire textures are created by using perlin noise and filtering techniques, while the particle system was created using basic physics and the animating capabilities of openGL.