CPS 124/296.3
Fall 2001

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 one of the research papers (or its references) below:
Creation and Rendering of Realistic Trees by J. Weber et al
Modeling the Mighty Maple by J. Bloomenthal
Flocks, Herds and Schools: A distributed behavioral model by C. Reynolds
Particle Animation and Rendering Using Data Parallel Computation by K. Sims

Rendering and Animation of Gaseous Phenomena by D. Ebert and R. Parent

Geospecific Rendering of Alpine Terrain by S. Premoze et al

Terrain Simulation Using a Model of Stream Erosion by A. Kelley
A Practical Analytic Model for Daylight by A. J. Preetham
Art-Based Rendering of Fur, Grass, and Trees by M. Kowalski et al
Painterly Rendering for Animation by B. Meier
Synthetic Topiary by P. Prusinkiewicz

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:
On Efficiently Representing Procedural Geometry by J.C. Hart
Point-based Modeling and Rendering by Marc Stamminger
Fast collision detection among multiple moving spheres by D. J. Kim
Art-Based Rendering with Continuous Levels of Detail by L. Markosian

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, 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

Realistic modeling and rendering of plant ecosystems by O. Deussen, P. Hanrahan, et al
Tips on finding silhouette edges of 3D objects by P. Heckbert
Craig Reynolds' collection of NPR links
Craig Reynolds' collection of ALife links
NatureWizard

 

Feedback?