Erik's Ski Resort - Experimentations in a 3D World
By Erik Weiss1

Operation
- Left mouse button = steer
- Right mouse button = fly
- Arrows = turn
- 'WASD' keys = look around
Objects Modeled

Lodge, Ambulance

Parking Lot, Lights (modified from sample code),
Ski Hill, Tow Rope

Trees, People
Behaviors
- Newbie skier snow plows straight down the hill at slow speeds
- Intermediate skier makes slow, wide, carves
- Advanced skier makes quick, fast, cuts in the snow
- Ambulance drives from one end of the skybox to another, then repeats
Required Features
- Multiple objects moving at any time: (see above)
- Multiple different types of behaviors: (see above)
- Multiple different types of buildings / scenery: (see above)
- Multile new textures: Lodge, Tree, Ambulance, Snow, Parking Lot
- Some must be hand painted: The Parking Lot is hand drawn
- Some must not be flat (that is, it must wrap onto multiple polygons): I couldn't think of a practical application of this which fit into my theme, so I wrapped one of the sample metal textures to the ends of the toe rope. Note in the picture there is a not a break in texture where there is a change in polygon.

- You must have an articulated object: The light spins on the Ambulance
- You program must work at a sufficient frame rate: On a good machine with a graphics card...
- You must add something that is effected by the time of day: Lights turn on in the lodge, parking lot lamps turn on, and skiiers stop skiing on the hill
- You must use at least one type of "advanced" texture mapping: I attempted to have multiple layers appear on the ski hill using multi-texturing. However, after hours of struggle and the TAs unable to pinpoint the problem I abandoned this. (The code is still there in Scenery.cpp)
Instead, I did a pseudo-bump mapping with the top of the hill by splitting it into multiple polygons and assigning different normals to each edge. You can see the hill appears to have a small indentation in the middle, which is caused entirely by this method. If I had more time, I would have split the top of the hill up into smaller polygons, and based the normals off the color of the texture.

Advanced Features
- Skybox: Very simple skybox implimented with a cube. Texture changes with the time of day.
- Billboard Object: A random tree in the parking lot points in the direction that you are looking. I used my rotation code from the last project (that nobody knows how to fix), so there are bugs at certain angles.

- Complex Behaviors: I would consider my skiiers somewhat complex. I implimented arc-length parameterization to help remove jitters on slower machines. Instead of simply going down the hill, the more advanced skiiers carve down the hill using a sin wave... which is cool to watch from a "newbie" skiier's point of view.
- Fractcal Mountains: Attempted. You can see the raw data in the background.
Sources