README How to run the Program: Download the executable and bitmaps into a single folder. Then double click the .exe file. Description: The program is basically a replica of my apartment room. As an RA I have two beds, desks, dressers etc... That's why you'll see two of each. I have left out certain details (in particular the mess) intentionally. I ran out of time to draw the desks so you won't see those. They wouldn't take much time, but I already spent an alloted 30+ hours figuring out more important stuff like perspective, rotations, lighting on textures etc... There are a ton of texture maps in the program. The walls, bedposts, dressers, door, closet, any pictures/flags, window, floor and ceiling are all texture maps. There are three lights built into the program. The first light is manifested in the ceiling light closest to the window. This light is white, and is the actual color of light in my room. The second light is manifested in the ceiling light farthest from the window. This light is red, just for kicks. The third light represents a sort of sunset light positioned at the window and aimed towards the nearby bed (the one i sleep in). In my room this year, I really don't get any sunlight. But last year I got would always get sun coming into my room during sunset. The viewer can navigate through the room. It's a little strange because the room is really navigating around the viewer. So rotations don't occur naturally as it would in real life. Navigation is rather intuitive, so although I spent a lot of time figuring it out, I'm leaving it up to the user to find his way around. Controls: 'w' toggles between wireframe mode and filled mode. '1' toggles the first white light '2' toggles the second red light '3' toggles the third sunset light 'f' moves the user forward 'b' moves the user backwards rotates in a counter clockwise direction rotates in a clockwise direction Process: My program consists of many different quads to display textured surfaces. I tried usign for loops to create a lot of my quads, but for some reason my program didn't like it. Instead of wasting time figuring it out, I simply specified the vertices. For my 3D objects, namely my beds and dressers, I created a single cube based on TwoCubes program and added wood-grain textures. I then scaled and translated the cube creating portions of each object. I then moved them wherever I wanted them to be. A lot of my textures are actual photographs I took in my room. For some reason I couldn't get the angle quite right on the door/closet, so both look bulged, like they're about to explode. I could easily have made pillows out of cubes or ellipsoids, but again I wasted a lot of time on unsuccessful missions. Overall, I broke my room down into smaller projects as you can see by the number of functions I have. Then with a series of pushes and pops, I could put the whole room together. Note: Given another 10 hours work on this, I think I could have it completely finished. However time does not permit until after the deadline.