Main Image: Procedural checkerboard floor

Extra: Images from a file as textures, with bilinear filtering

Extra: Proceedural Julia-set fractal as a texture, animated over time

View a closeup of another animated fractal I created.






Platform: OSX
Hardware: MacBook with Intel Core 2 duo processor with 4 gigabytes of ram.
Libraries: OpenGL & GLUT for real-time displays and visibility determination.
Language: C++
IDE: Eclipse
Compiler: g++
File Parser: Read the supplied input files into program. This provides camera position, window size, and scene patches.
Environment Visualization: Using OpenGL, the environment will be rendered with patches given the shades determined by the radiosity solver.
User Interface:
-Because the radiosity data is not view-dependent, after computing the lighting, the user will be able to change the camera's position in real-time in the scene to inspect the results.
-User input will determine which testing scene to work with, via keyboard
-User input will determine how many iterations to complete, via keyboard.
-User story:
- launches application by double-clicking on executable
- answers prompt for which scene to test (ex: CornellBox_Fine.txt)
- answers prompt for number of interactions to compute (ex: 4)
- waits for radiosity to compute
- user is shown a default view of the completed scene
- user can then manipulate camera to view scene from other angles
- user presses Escape to quit
Visibility Solver: Using OpenGL, create localized hemicube views to determine a patch's form factors, or visibility of other patches.
Iterative Radiosity Solver: Given information about a patch's form factors, distribute reflected diffuse lighting
Tone reproduction: Remap computed lighting to produce varied effects.



I designed a scene layout to match Whitted's original rendering. This image was simply drawn with OpenGL to get the general geometry of the scene. The spheres are near each other but not quite touching.