I started looking at this over spring break and realized that I didn't want to do work so I decided to start working on this Sunday. Here's what I came up with:
OpenGL ES - OpenGL ES is "a cross-platform API for full-function 2D and 3D graphics on embedded systems." OpenGL ES is used on cell phones, consoles, and appliances as well being used in vehicles. There are two types of OpenGL ES: 1.X and 2.X. The first type is for fixed function hardware and it offers performance, acceleration, and great image quality. 2.X on the other hand is for programmable hardware. Some advantages of OpenGL ES are: industry standard and royalty free, small footpring and low power consumption, seamless transition from software to hardware rendering, extensible and evolving, easy to use, and well-documented (in case you need guidance).
Processing and OpenGL - There is an option to use OpenGL rendering in Processing. This allows Processing to use the cross-platform graphics interface for 3D and 2D graphics and utilize the speed of an OpenGL accelerated graphics card. When using OpenGL in Processing, you have the chance to draw more to the screen and a chance to create larger windows. However, you might have issues if you don't have an OpenGL accelerated graphics card. To use OpenGL in Processing, simply import OpenGL through this statement: import processing.opengl.*; You also have to specify, in order to use OpenGL, OpenGL as a third parameter in the size() function in setup(). OpenGL in Processing is really memory hungry and has a potential to crash computers if it is trying to process a large amount of drawings to the screen.
PyOpenGL - PyOpenGL is the Pythonic OpenGL API. This is basically programming in Python using the OpenGL API. Python is an easy language to write in. It has no punctuation for endings unlike Java, or C/C++ which use a ';' to denote the end of a line. Everything is done by indentation as well which shows ownership of what is in a for loop or while loop or in a specific method/class. There are some advantages to using PyOpenGL: Calls to OpenGL automatically come with exceptions when things are wrong in the code; there is no need to compile since it is Python which means you can change code faster; PyOpenGL is open source so it's changing daily.
1. I have changed the 'lstrips' example to draw a specific bezier curve and be able to rotate it. Here is a picture of what I did:
2. Here is "Perspective Projection": I changed it up to make it look like a triangular prism. The color scheme is a tie-dye...anyways...something we haven't seen is the lighting aspect of it.