COMP 365 - Computer Graphics

Computer Graphics is alive and well at Wheaton! Below are some examples of student projects done for class and for research. The class uses the Linux machines in the CSLab, and create graphics using OpenGL, a state-of-the-art graphics programming toolkit.

Computer Graphics was just completed in the spring of 2001 and will be offered again in the spring of 2003, taught by Mike Gousie.

Back to Projects

Self-Similar Plants

Plants can be modeled by using taking advantage of the fact that many plants exhibit self-similarity. For example, the tip of a fern leaf looks like a miniature version of the entire fern. A programming technique using an L-System grammar, which is a method of representing parts of the plants, along with recursion, can create interesting patterns. Here is an example of a plant "grown" in a computer graphics project.
(Click on image for larger version)
Here is another aspect of the plant project, where users can define their own plants. This shows how a plant "template" is built using the GUI (Graphical User Interface) on the right. All that is needed is a few branches, leaves, and a "growth spot" where new branches can sprout. These growth spots are represented by the yellow diamond shapes.
(Click on image for larger version)
This is a tree "grown" from the template defined in the window above. If you compare this image to the previous one, you can see the template at the base of the tree, and how similar structures sprouted from the growth spots.
(Click on image for larger version)

Fractal Mountains

Here is another project from the computer graphics course. In this one, a square grid of elevation points (an N x N array) is computed using fractal techniques. By varying the maximum elevation and the fractal dimension (which indicates the "roughness" of a surface), many interesting "mountains" can be generated. Once the surface is computed, it is displayed in three dimensions with shading. A GUI allows the display to be rotated and scaled, and the mountain itself can be altered.
(Click on image for larger version)

(Click on image for larger version)
This is another group's version of the fractal mountain project. This one has the option of viewing the mountain in polygon outline form (left) or in full surface and shaded form (right).
(Click on image for larger version)

Modeling

Modeling entails defining an object in terms of planar polygons, and then rendering (displaying) the image. Here is an example of a scene rendered as a wire frame model:
(Click on image for larger version)
Next, the image is rendered as a collection of solid objects, making sure that objects in the foreground hide objects behind:
(Click on image for larger version)
Finally, for more realism, lighting effects are added. This includes texture mapping (adding patterns to objects, such as the chessboard) and smooth shading (colors vary depending on a polygon's orientation to the light source):
(Click on image for larger version)

Terrain Modeling and Viewing

In this project, we start with real terrain data in the form of contour lines, instead of creating elevations as was done with the fractal mountains above. A surface is then created using various methods, and displayed in three dimensions. Here is one such surface, displayed using an orthographic projection (one in which parallel lines on an object remain parallel in the image) and shading. The red lines represent the x and y axes. Popup menus allow the user to alter the display.

This work was done by Nate Buggia ('01) as part of an independent study on Advanced Computer Graphics. See his Computer Graphics II page for more projects and information.

(Click on image for larger version)
Below is another version of a terrain viewer, this time starting from data representing Mount Washington, N.H. (For those skiers and hikers out there, Tuckerman Ravine is in the lower left.) This image was created using a true perspective projection (one in which parallel lines on an object will converge to some point in the distance in the image) and shading. The red line represents the x axis, the blue is the y axis, and the white is the z (elevation) axis. This picture also shows a simple popup menu that allows the user to alter the display of the surface.

See Mike Gousie's research page for more information on how the surfaces are generated from contour lines.

Home |  Research |  Publications |  Student Club |  Talk2Us |  Dept Home