README for Assignment 3 Daniel Eaton CS314 djeaton@interchange.ubc.ca Individual Project 1. Code Reuse I have used the general templated provided in assignment 1. Namely, I followed the same function names for the callbacks/initialization, though I have made many additions (including mouse handlers). I have also carried over many of the math utility functions/datatypes from assignment 2. These are contained in mathutil.cpp. 2. The funciton I use for loading a TGA file has been reproduced (unchanged, and with permission) from http://www.gametutorials.com/Tutorials/opengl/OpenGL_Pg2.htm#TextureMapping. The original author is 'digiben', who I contacted as per his EULA on the site. He gave me permission to use the code for my project. I did this because the PPM format is extremely inconvenient for me to use. 3. Features - all of the standard features - picking (press 'p' then left-click on an object in the scene to change to its viewpoint, or right-click to exit picking mode) - you can also press 'g' to cycle through all the viewpoints - you might be wondering why i used the same color for all 3 poodles... well, i like symmetry, and having a light vs dark poodle just didnt look good! not to mention cliche... - i wanted to implement shadows, but found that the suggested technique was far too slow (plus i don't have time to do a better implementation..) - when in the walking poodle's viewpoint, you can steer the dog left or right by depressing the left mouse button and dragging, and you can change the camera position by hodling down the right button and dragging - the "universe" is actually a huge sphere with a texture mapped on the inside - the quasi-environmental-mapping effect ont he edges of the moebius strip was achieved by circumscribing it within a slightly smaller, translucent moebius. this was a nice 'cheap' effect. the universe texture is reproduced from http://antwrp.gsfc.nasa.gov/apod/astropix.html - the doggie 'volleyball''s texture is planet earth, as you have probably noticed. the texture is very high resolution (and mipmapped) so you should go in for a closer look! the texture is from http://www.kuffner.org/james/gallery/raytracing/earth_from_space/. - the program uses display lists to speed up drawing of the moebius strip (i implemented functions to compute the surface normal, and u, t derivatives (the parameters of the parametric surface) - i was able to draw the tesselation superimposed over the moebius strip using the polygon offset functionality: glEnable(GL_POLYGON_OFFSET_FILL) and glPolygonOffset(); - used quadric functionality for the spheres - i spent most of my time figuring out all the moebius-related transformations... 4. Inspiration ... my love of juxtaposition. Also, Escher's 'Ants'