CS488 - Introduction to Computer Graphics
This course is an introduction to computer graphics. There are 4 major assignments and a final project (along with a midterm and final exam). Given how much I'm really enjoying the class, I thought I'd exhibit some of the work that I've done. The course website can be found here.
Assignment 0
This assignment was minorly extending a paint GUI, while getting used to the Gtkmm toolkit, and setting up the account for future assignments. I extended this by including a whole slew of fun colours. :)
Assignment 1
We were required to implement the GUI of Tetris, while at the same time getting used to OpenGL syntax, and basic interactive methods (eg. rotation, scaling, etc). I extended this by having bevelled blocks, and creating 3D text for score keeping.
Assignment 2
This assignment we weren't allowed to use OpenGL, but were required to implement the graphics rendering pipeline - converting 3d models into world coordinates, being viewed from the camera, and displayed on the 2d screen.
Assignment 3
This assignment involves familiarizing oneself with heirarchical modelling. In other words, the ability to take, for example, a puppet, and by moving it's arm, the child nodes - like the hand and whatnot - move accordingly and smoothly. Other requirements included implemention a user-friendly 3d/trackball-like rotation, and having z-buffer/backface/frontface polygon culling.
Assignment 4
This is the raytracer assignment. Ray-object intersection, shading and lighting computations, and file I/O are the standard components. Further is the requirement of a unique scene, and one additional objective. I chose to do anti-aliasing, in the form of super sampling, and reflection.
Final Project
(Note: not up yet) A final project proposal is reviewed and accepted/rejected by the course personel before beginning. My project, accepted, is the generation of a prairie landscape, with wind simulation. The user interacts with the scene by moving an object (default sphere) along the fractal terrain, colliding, where appropriate, with the trees distributed over the landscape.