University of Wisconsin Computer Sciences Header Map (repeated with 
textual links if page includes departmental footer) Useful Resources Research at UW-Madison CS Dept UW-Madison CS Undergraduate Program UW-Madison CS Graduate Program UW-Madison CS People Useful Information Current Seminars in the CS Department Search Our Site UW-Madison CS Computer Systems Laboratory UW-Madison Computer Sciences Department Home Page UW-Madison Home Page

CS559 Spring 2001: Project 3

A Model Railroad

Due Date: 5pm Friday May 11

Project Source Code

New Hint: You are free to change the existing program in any way you like. Change the textures, move the tracks (the train follows them), change the OpenGl settings.

The Basic Task

This project is all about modeling, and gaining experience with many more of the features of OpenGL. The starting point is a small virtual space that consists of a grassy plain with a railroad track running around it. A train, just a box for now, runs around the track at constant speed. Your task is to model and render the train and other structures in the environment.

Like project 1, this project defines a set of sub-goals with points awarded for each goal. Unlike project 1, the goals are far more loosely defined, so there is scope to try interesting things to get all the points available.

You may work in pairs. If you choose to work in a pair, then each member of the pair will get half of the earned points. Once again the maximum number of points, per person, is 100, but there are well over 200 points available. To submit as a pair, one person submits the code and both people submit a readme saying who they are working with.

The Tasks

Texture Mapped Polygon Modeling Max 50 points
Add one or more texture mapped polygon objects to the environment. For example, add some houses with peaked roofs and texture maps for the doors, windows and roof shingles. Other objects are encouraged. Points will be awarded for successful use of texture maps and the complexity of the models (without using outrageous numbers of polygons).
The Train Max 50 points
Make the train a train. The train you design must have some animated pieces, including wheels that go around at the right speed. The train must continue to move around the track and must continue to be aligned with the track, as the existing box is. Clearly, you should get rid of the box. You can only get all 50 points if you have rotating wheels and at least two other animated pieces. Be warned, carriages are hard.
Bezier Surfaces Max 50 points
Add something made of Bezier patches to the environment. Possibilities include but are not limited to silos, round roofed barns, or the boiler on a steam train. You are not allowed to cheat and use the OpenGL Bezier functions, but that limits you to 40 of the 50 points. You must do subdivision to get all 50 points, and you must have multiple patches joined with C1 continuity.
Fractal mounds Max 50 points
Add some mounds, or something else (a garbage heap) modeled as fractal terrains. They must be texture mapped to get all 50 points. Be careful not to disturb the train tracks, although if you really really want to impress me then make the tracks go over the mounds.
L-system Trees Max 50 points
Add some trees or plants defined by L-systems. To keep the polygon count low these will have to be very simple. Maybe pretend it's winter, which means you can do fractal snow drifts instead of fractal mounds (see above).
Change the Navigation System Max 50 points
The navigation system now is not great. Change it to something better. To get all 50 points, you must have a mode where the viewer rides the train.

The Program Skeleton

The program skeleton is an extensive piece of software. Here are some notes on its operation:

The Interface

The existing simple interface uses three mouse buttons. Moving the mouse with the left button pushed rotates the world about a fixed point - the look-at point. Moving the mouse up or down with the middle button pushed changes the distance from the viewer to the look-at point. Moving the mouse with the right button pushed translates the world - by moving the look-at point in the ground plane. It's not the best, but it is relatively simple.

Hints and Suggestions

Example Program

This example program demonstrates many of the tasks you might choose to do. It includes:

It does not demonstrate L-systems. This program would be good for about 225 points. It should do more for the view change (such as a "walk" mode) and would need to do L-systems to get the full 300 points.

Back to CS559 Home Page