CPS 124/296.3
Fall 2002

Scenery

It is simple to create desolate moonscapes, but creating a believable outdoor scene is much more difficult.

Specifications

Create a program that allows the user to add plants, animals, man-made structures, and environmental elements to your terrain. Optionally, these can be specified as an image that is the same size as the one that represents the terrain, but in which the colors indicate different types of things to include within your world. For example, shades of red might indicate trees, shades of cyan might indicate birds, etc. Each color should be recognized as a range in which darker indicates a more dense collection of the specified thing. The mappings from colors to things and from things to geometry should be easily changeable.

The user must be able to include, and your program must be able to display, a variety of geometric objects: simple quadric solids, arbitrary objects specified in .obj files, and procedurally generated plants or other environmental elements like fences, clouds, moving water, or smoke. Your world cannot be a dead place, there must also be things moving around in it: insects, birds, herd animals, or dinosaurs :) Finally, your world should have an atmosphere. This can be as simple as a blue background or as complex as a cloudy sky which shows the passage of time as the sun moves across it.

In addition to the above requirements, you must implement the features described by at least one of the research papers (or its references) below:

Making all of this run at interactive speeds will be a major challenge, so start with simple geometry and a small world! Also, judicious use of textures instead of polygons may help create the illusion of an environment without the time consuming polygons. You can allow the user to further define the levels of detail on your plants so that they're not visible from far away, but show up with greater clarity as you get closer. Here are some papers that provide other ideas:

Finally, you need to choose a theme that integrates all of the elements included in your world. For example: a day in the life of a farm, the earth before (or after) humans existed, life underwater, or a cartoon world.

Extra Credit

There are many parts of the homework that are open ended. You can earn bonus points with extremely creative and intuitive solutions. Make sure that you mention your assumptions, extra features, and how to run your program in your README file.

Resources

 

Feedback?