2006 Project 2 - a Room with a Pool

Due 3/6/06 at 11:59pm Chicago time



The goal of this project is to write some more sophisticated GLSL code.

This program will make use of multitexturing, animation, noise, bump mapping, lighting, environment mapping, reflection, refraction, and probably some other things as well.

In this project you will create a room, say roughly 15 meters long, wide, and high.

The main feature of the room is a central pool which is 3 meters deep at its deepest point. You should leave enough room for the user to walk around the outside of the pool, and enough room for the user to walk into the pool.

The user should be able to look up and down, turn left and right.

There should be at least one light in the scene.


The walls of the room, the floor of the room, the ceiling, and the sides and floor of the pool are places where you can be creative with texture mapping. You can also add objects into the room to create an interesting scene. Coming up with a theme would also be a good idea so the room does not look like a Hyborian garage sale.

There should be objects in the pool. One object should be completely submerged, and another should be tall enough to stick out of the water. Again there are options here for creative texture mapping on the objects.

The main focus of the work is on the water. The water should both reflect and refract the room. There are simple ways to do this based on what we have talked about in class, and more complicated ways that are described in a variety of web pages. The water should look good standing in the room. 

Doing that gets you a B.

To get an A you should make sure the room is interesting. It does not have to be a complex model to be interesting - the focus here is on using GLSL to add apparent complexity. The water should correctly reflect all the objects in the room and the water should move (or at least appear to move) with either ripples or waves. You should be able to go under the water and look around, and more importantly look up.

Other things you might want to consider are dynamic shadows or maybe some flames.



The focus of the project presentations will be on the unique things you you did in your project. The idea here is to see the different techniques that people used to solve similar problems. Show off ... and explain how you did it.



As with the first project, to turn in your project you should set up a web page describing your work, including the well-commented source code and required files to be able to compile and run your program, and some screendumps showing what your application should look like. You should then email andy with the location of this website before the deadline.

Again, it would probably be a good idea to put a backup copy of the web page at a second website just in case I can't get to the first one.

You may be interested in this library Bob put together: http://www.evl.uic.edu/rlk/obj/obj.html

You may also want to check out one of the freeware modelling packages like Milkshape 3D: http://www.swissquake.ch/chumbalum-soft/

last revision 2/6/06