Procedural Terrain System, Temporary Home

$Revision: 2775 $

Procedural Terain System is a flexible terrain library for jME 2. You can download or view the API Spec using the links provided in the Resources section below.

You do not need the PTS source code to use the system, unless you want to use the provided samples as templates or for study. Otherwise, just download the binary jar (link provided below) and code from the API spec (link provided below).

UPDATE: Support for efficient and durable terrain-configuration persistence has been added,

You can discuss the Procedural Terrain System or seek help at the User Code & Projects forum at jMonkeyEngine.

PTS is redistributable according to the Apache 2.0 License.

Table of Contents

  1. Resources
  2. Demos
  3. Features

The MiniMap below shows the instantaneous status of all local terrain blocks

shaded = not instantiated; z = not attached; o = cullled; x = intersects frustum (not culled).


Resources

Note that since I don't yet know where Procedural Terrain will be hosted, I am not yet providing direct Subversion access, and that the resources below are not version- or time-stamped. Until I start stamping things, you'll have to check file dates and sizes to make sure you have the latest.

Demos

There are SimpleGame demonstrations of Procedural Terrain System. Each launcher either demonstrates a particular procedure (aka elevation-generation algorithm) or tests something currently being troubleshot.

Until I perfect the WebStart cache-checking, you need to pay attention when WebStart launches these apps if you expect or want to get an application update. If you should get an update but don't see WebStart downloading the app update, please retry once or twice. If that fails, remove both the app and the JNLP file from your WebStart application and resource caches, respectively, then try yet again. (These work-arounds should work for all cases).

Be aware that the System purposefully allows intermixing of all of these procedures. These demonstrations purposefully limit the number of procedures so the procedure being exhibited can easily be distinguished.

The normal 'q' and 'z' SimpleGame keys won't work for SimpleGame demos when surface-traversal mode is on. Use PGUP to allow the camera to escape the terrain surface (which is useful for viewing the terrain at a wider scale). If you want to change screen settings (for Simple*Game), use this button:

The samples which implement multi-pass texturizing use a elevation-derived texture mapping with a geometrical exclusion zone (the dirt triangle before the starting camera location).

Please report any bugs at the jME User Code & Projects forum.

* SimpleGame demo details: The movement speed in all of these accurately models adult human jogging speed. To experience walking or running speed, change the movement speed variables as directed in the TerrainRunner.java code and recompile.

The SimpleGame which drives all of the SimpleGame examples is com.admc.sample.TerrainRunner, which you can find in the source distribution (see link above).


Features

Before you will understand the feature list, you should understand the most basic concept of the Procedural Terrain System. That concept is that game world elevations are determined by going down a chain of height generation algorithms. We call these height generation algorithms elevation procedures.

** As of the my first SVG support implementation, the original load time is very slow for large terrains as the SVG data is converted into cache blocks of much less efficient raster data. There at least two strategies to drastically improve performance by eliminating the raster level completely. One option is to make a custom SVG class to allow pixel values to be sampled directly from the vector data. Another option is to enhance the jME image combiner functions to support direct combining between raster and SVG images.


Last updated $Date: 2009-11-18 11:27:10 -0500 (Wed, 18 Nov 2009) $