Tuesday, March 24, 2009

More homework for classwork

This week, my instructor had to take another leave of absence, and in his place he left us a few exercises. First, I was instructed to explore some OpenGL code examples, and just submit proof that I got the files running on my computer. Click on the following picture for a larger view of the screenshot I took of the simple reshaping program he provided us:




The next assignment was to alter or make some of code of my own that generates something that is rotated when the arrow keys of a keyboard are pressed. What I did, basically, was take some code from an example that drew a quarter of a wireframe globe and changed it so that it would instead draw the entire globe. I then added the functionality of it rotating on keypresses by referencing a previous example that demonstrated such functionality. After satisfying all my instructor's pre-requisits, I decided to go ahead and make it feel more my own, so I changed the color of the globe from white to red with a simple alteration of the code.
Click this link to run an executable file of what I made to see the effects yourself.

Monday, March 16, 2009

Homework to cover the classwork

The Friday before Spring Break, my instructor cancelled class and left a bit of homework to work on so we wouldn't miss him TOO much. Basically, he left several articles to read and comment on, and a few short OpenGL code exercises.

As for the articles, they were about OpenGL (a language that speaks to graphics cards across all computer platforms, be it a Windows, Linux or Mac box)some of the interesting applications of it, and some specifics of implementing it through coding in Processing and Python.

I think it's awesome how OpenGL is used in anything that makes use of a graphics card. It surprised me to learn that from cell phones to super computers to even gaming consoles, they all implement OpenGL in order to render the graphics for display. 2D or 3D alike, OpenGL can handle it all. It really does sound like the silver-bullet of computer graphics.
It can also be implemented with any programming language. The examples in the articles refer to use in either Processing, Python, or even C/C++. I'm kind of impressed that one single language can be implemented so genericly across multiple languages. I suppose that the languages themselves do deviate on how they implement certain aspects of OpenGL, but still, it's impressive to imagine completely different languages communicating so flawlessly with each other.
But the best part is that OpenGL is open source, which means that extensions are constantly being developed by individual programmers, and popular extensions actually become part of the code included in the entire OpenGL language. Evolution comes to it naturally.

Here's the first of two exercises: We had to download Dev C++, and compile a few pre-made programs from our book. After that, we had to altar the code so that it would draw a Bezier Curve (See Bezier Curves assignment below) instead of the default circle. Below is a screenshot of my computer while running the modified version of that code. In the background of the screenshot is the alterations that I made to the original code.





Tuesday, March 3, 2009

Project 1: Shrinking Circles

For project number 1, I decided to attempt to recreate Anthony Mattox's Cell Cluster Cirlces. Below are some screenshots of the pre-colored production process; As always, click on the pictures to see a full-sized version.




Here's what I came up with in terms of mimicing Mr. Mattox's design
Oddly enough, this is the color scheme that took me the longest to figure out how to calculate.



Here are some of the interesting color schemes I was able to come up with through assigning color values to circles based on their location.




These two schemes have got to be my personal favorites.




Now that I have displayed the screenshots I have taken of my program, I am going to provide a link so that anyone who feels like playing with it themselves can have that opportunity.
As a side note, be sure to experiment with pressing the mouse button in the application screen, as well as pressing buttons 1-4 to switch between the previously shown color schemes. And enjoy!