Final Project - CSE 167 - Student: Allen Porter
CSE 167 - Fall 2004
Final Project
Allen Porter <ajporter@ucsd.edu>
Requirements
The GLUT library is required in order to compile and run this executable.
Package Contents
bin/ - Contains the program executable
textures/ - Contains textures used in the room
movie/ - Contains frames for the projected movie
The above path structure must be intact in order for the executable to run
properly.
Controls
arrow keys - Moves the viewer forwards, backwards, left and right in the
room.
mouse - Press the left mouse button and move the mouse in order to
look around the room up, down, left and right.
p - Turns the Projector and movie on/off
w - Toggles Wireframe Mode
c - Toggles Backface Culling.
Description
The goal of this project was to create a realistic looking movie theater room
that included an actual movie on the picture screen.
The movie clip was converted to a sequence of bitmap images at 10 frames per
second. The original duration of the clip was longer than the current clip
of 17 seconds, but the resolution, length, and frame rad had to be cut
significantly to keep the file size managable for turnin. For a future
version, it may be beneficial to use a different file format that allows
for compression of frames or read a video file directly.
Drawing the animation frames required using time as input. The movie frame was
determined by checking the milliseconds since the projector was started. The
average brightness value was determined by averaging all color channels over
the entire image. This average brightness was then used to determine the
amount of ambient light in the room in order to create a realistic lighting
feel when the projector turns on and off.
Four spot lights were placed on the walls in order to mimic realistic theater
lighting. Another spot light was placed at the projector when it is turned on
and the last light is a non local directional light coming from the screen
that shines onto the seats.
The seat textures were taken from online advertisements for movie theater
seats. The original pictures required heavy modifications to remove the
perspective since the seats were featured at a 45 degree angle. The carpet,
ceiling tiles, and floor tiles were also found on various websties. Repeating
textures were drawn using many smaller quads. A small texture size also has
the advantage of better lighting resolution.
Display lists were used when rendering all of the static objects in order to
increate the frame rate.
Download
Screenshots
