Reza Ali
Media Art & Technology
594CM -
Fundamentals of Spatial Computing
Project 1 - Transformation Based Spatial Forms
Project Description:

This project was my first exploration into OpenGL with C++ and GLUT. The goal of the assignment was to explore the techniques and concepts presented on points and dynamics to develop an generative drawing system. In this project I used points to generate shapes (cubes, cones, triangles, dodecahedron, etc) via GLUT's primative shape calls. Transformations were used to rotate these shapes in space to create the images on this page.

The "generative" aspect of the project is in the transformations and coloring. Each shape is transformed based on the previous shape's transformation (there is no pushing or popping commands untill all the shapes have been transformed, see code for details). Additionally, the colors used are based off the angle of the rotation for the shapes. Alpha blending was used to create the blending effect in the images. The program allows the user to manipulate the system's parameters, such as the types of objects drawn, their alpha value, and camera angles. There is also an option to stop the animation so a screen shot can be captured (see details in next section).
Functional Controls:
   
Key Control Parameter
UP Zoom in
DOWN Zoom out
RIGHT Increase object's alpha
LEFT Decrease object's alpha
r Start/Stop Animation
1 Draw Solid Cubes
2 Draw Wire Cubes
3 Draw Solid Cone
4 Draw Wire Cone
5 Draw Solid Sphere
6 Draw Wire Sphere
7 Draw Solid Dodecahedron
8 Draw Wire Dodecahedron
9 Draw Solid Icosahedron
0 Draw Wire Icosahedron
ESC Quit Program
Code:
main.cpp
Xcode Project
References:
Swiftless
Nehe