SI31, coursework 1 Geoff Richards. Compiling --------- A GNU/Linux binary called `cw1' is provided. It might work on your system or it might not. If it doesn't work then try recompiling it (type `make clean' and then `make' to rebuild it on a Unixy system). Instructions ------------ Run the program `cw1' on a level 6 cslin machine or equivalent. The C++ source code is in `cw1.hh' and `cw1.cc'. The Makefile can build the program from scratch if necessary, with the default target. Almost all of the polygon data for the models used in the scene are read from files with the extension `.ob'. These are in an ad-hoc format designed specifically for this project. Textures are read from PNG files, using libpng. Moving the Camera ----------------- The mouse and cursor keys can be used to navigate the scene. Dragging the mouse in the window with the left button changes the viewing angle on two axis. The middle button can be used to move forwards and backwards and the right button raises and lowers the camera. The up and down cursor keys move the camera forwards and backwards. The left and right ones move it sideways. Keyboard Commands ----------------- a - toggle alpha blending. b - activate teapot. c - print current camera position. d - open/close left draw. D - open/close right draw. k - toggle bulb over table. K - toggle main bulb. l - swing the main bulb from its imaginary wire. m - toggle averaging of normals on `smoothed' vertices. The effect is best seen on the teapot. n - toggle the display of normals with red lines. If `m' is pressed the normals are updated to reflect the way they are used for the shading, illustrating the difference. This has a slight bug which sometimes makes the walls go red. o - toggle orthographic projection. In orthographic mode a plan view of the room is shown, and camera movement is disabled. The animations and other options still work. q - quit (also escape). r - reset camera to default position. t - toggle textures. u - toggle backface culling. w - toggle wireframe mode.