|
OpenGL Programming
During my final year as an undergraduate at UMass Amherst, I had the good fortune of being able to take Sandy Hill's courses in computer graphics. The courses involved creating several OpenGL/GLUT programs such as a
2D wireframe viewer, a Mandelbrot viewer, a 3D castle viewer, and a ray-tracer. Although much of the low-level code was
abstracted from the students, we were still responsible for implementing all the mathematical aspects of each
program. Each of the following programs was developed under Win32 using Microsoft VC++ version 5.
Ray Tracer
The Assignment given over the course of the Sandy Hill's second semester computer graphics course was to implement
a ray tracer - complete with Cook-Torrance illumination, reflection,
refraction, transparency, shadows, procedural surfaces, and booleans.
I worked along with another student, Frank Levine, to create
this ray tracer from skeletal code that was provided by the professor.
View ray tracer code sample
Download Ray Tracer for Win32 (requires OpenGL and GLUT DLLs)
Tower of Escher
The final project for Sandy Hill's fall 1998 graphics course was to make a three-dimensional fly-through of a
castle. The program allows the user to navigate through some OpenGL rendered geometry using the mouse and keyboard.
This project incorporated topics such as 3D transformations, transformations from world to camera to viewport to window coordinates,
texture mapping, and animated textures.
For this project I modeled "The Tower
of Escher" which attempts to incorporate elements from M.C. Escher's artwork into one architectural
monstrosity. Some of Escher's works that I attempted to incorporate were "Tower of Babel", "Ascending and Descending",
"Knots", and "Relativity".
There are several elements of the tower in addition to the purely Escher-inspired ones. Douglas Hofstadter
was one of Escher's biggest fans, and I am a fan of them both, so I had to include a rotating "Godel,
Escher, Bach" symbol in the art gallery. Finally, the "game of life" is played out on the front wall of the tower.
View Tower of Escher code sample
Download tower of Escher for Win32 (requires OpenGL and GLUT DLLs)
Mandelbrot Viewer
This assignment was to make a program that would allow the user to view the Mandelbrot Set up to a given level
of magnification. The program renders the fractal at progressively sharper resolutions during program idle time;
this allows the user to navigate quickly despite the complexity of rendering a detailed section of the Mandelbrot
Set. The user can easily zoom in by dragging rectangles in the screen window with the mouse. I am particularly
proud of the mapping from orbit times to RGB values (trans: I tweaked the color-scheme to my liking :).

Download Mandelbrot Viewer for Win32 (requires OpenGL and GLUT DLLs)
Wireframe Viewer
The purpose of this assignment was to become familiar with OpenGL programming using the GLUT toolkit, as well as
transformations from world coordinates to view coordinates to screen coordinates. The user can view several
different two-dimensional drawings, and zoom in on arbitrary rectangles within the drawings. Aspect ratio is
maintained regardless of zoom, or window shape. In addition to the drawings, two procedural images are
drawn - the "Sierpinsky Gasket" and a "Gingerbread Man".
Download Wireframe viewer for Win32 (requires OpenGL and GLUT DLLs)
|
|