• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

Mercator/H03-May-2022-6,0433,745

m4/H31-Aug-2013-8,7447,874

support/H31-Aug-2013-2214

tests/H03-May-2022-3,4712,640

AUTHORSH A D29-Aug-2013279 108

COPYINGH A D22-Mar-200917.6 KiB341281

ChangeLogH A D31-Aug-201354.4 KiB1,7621,132

DoxyfileH A D26-Jan-201364 KiB1,5561,114

INSTALLH A D22-Mar-20099 KiB230175

Makefile.amH A D29-Aug-2013433 1611

Makefile.inH A D03-May-202227.6 KiB870776

NEWSH A D29-Aug-2013949 4924

READMEH A D22-Mar-20093.2 KiB9779

TODOH A D26-Jan-20133.2 KiB9460

aclocal.m4H A D29-Aug-201336.1 KiB1,037934

autogen.shH A D21-Apr-20131.2 KiB5644

config.guessH A D07-Nov-200843.8 KiB1,5271,315

config.h.inH A D29-Aug-20132.1 KiB8456

config.subH A D07-Nov-200832.6 KiB1,6591,514

configureH A D29-Aug-2013544.7 KiB18,13415,359

configure.acH A D29-Aug-20132.3 KiB9875

depcompH A D22-Mar-200917.4 KiB590375

install-shH A D22-Mar-200913.3 KiB520344

ltmain.shH A D26-Jan-2013276.9 KiB9,6577,304

mercator-0.3.pc.inH A D08-Jan-2011276 1210

mercator.specH A D29-Aug-20131.6 KiB8063

mercator.spec.inH A D22-Mar-20091.7 KiB8063

mingw32-mercator.spec.inH A D16-Sep-20101.4 KiB5445

missingH A D22-Mar-200910.9 KiB368275

README

1Mercator: a procedural terrain library
2======================================
3
4This is a development release. The API is currently not frozen. Stable
5releases of other packages should not be made against this software.
6
7Mercator is primarily aimed at terrain for multiplayer online games and
8forms one of the WorldForge (http://www.worldforge.org) core libraries.
9It is intended to be used as a terrain library on both the client, and the
10server.
11
12Mercator is designed in such a way that individual tiles can be
13generated on-the-fly from a very small source data set.  Each tile uses
14a fast deterministic random number generation to ensure that identical
15results are produced "anytime, anywhere".  This enables transmission of
16terrain across low bandwidth links as part of the standard data stream,
17or server side collision detection with the same terrain that the
18player sees.
19
20The use of tiles means that there is inherently a large degree of gross
21control of the shape of the terrain.  Finer control is implemented by
22allowing geometric modifications - for example, a polygonal area might
23be flattened, or a crater could be applied.
24
25Height generation
26-----------------
27* uses deterministic random number generation and seeds to
28  generate detailed terrain from sparse control points.
29* each tile is seeded using the four surrounding control points
30* shape of each tile is influenced by height, roughness and
31  falloff parameters
32
33Height Modifications
34--------------------
35* geometric modifications can be applied for small features
36* new types of modifications can be added quite easily
37
38Shading
39-------
40* generate shading information based on height and gradient
41* new types of shaders can be added quite easily
42* used on the client side
43
44Atlas Integration
45-----------------
46The aim is to pass all data between server and client using atlas.
47Cyphesis and Stage provide a parameter to the world entity that defines
48the global terrain (this is a bit of a hack). Shading and Modifiers are
49only implemented on the client right now.
50
51   TODO:
52   properly define atlas messages between client and server for
53   * terrain base points
54   * geometric modifiers
55   * shading controls
56
57Collision
58---------
59basic terrain intersection/collision functions are implemented for
60* bbox
61* point
62* ray
63
64Vegetation
65----------
66Basic support for generation of forests in much the same way as terrain.
67Forest shape (polygonal) is supported
68Tree location, orientation and height are generated from a random seed.
69Currently incomplete and has hardcoded parameters
70
71Current Limitations
72-------------------
73* multiple resolutions in the one terrain are unsupported
74
75Implementations
76---------------
77As of September 2003, Mercator is used in:
78Equator - allows editing of base points
79Apogee - implements shaders
80Stage
81Cyphesis
82
83Screenshots
84-----------
85(bear in mind that some of these shots may have terrain with somewhat
86unrealistic parameters for more interesting demos)
87
88* Equator showing part of a terrain
89http://members.austarmetro.com.au/~mcginnes/snapshot8.png
90* Apogee showing shaders in action
91http://www.ecs.soton.ac.uk/~ajr/WF/apogee_terrain_shaders.png
92* Equator showing some modifiers applied
93http://members.austarmetro.com.au/~mcginnes/snapshot8.png
94http://members.austarmetro.com.au/~mcginnes/mercatorMesa.jpg
95
96
97