-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.original
151 lines (105 loc) · 4.11 KB
/
README.original
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
Procedurality v. 0.1 rev. 20070305
----------------------------------
Copyright 2007 Oddlabs ApS, authored by Jacob Olsen, jacob@oddlabs.com
For more information and latest release, see http://oddlabs.com/procedurality/
Procedurality is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
Procedurality is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Foobar; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
What's this?
------------
The Procedurality engine is a spin-off from the development of the cross
platform RTS game Tribal Trouble (see http://tribaltrouble.com/). Like Tribal
Trouble it is written in Java, and some of the tricks it can do has been
described in the paper "Realtime Procedural Terrain Generation" which can be
found on the homepage http://oddlabs.com/procedurality/
Procedurality is made up of two parts: A set of classes that generate various
types of graphics (random noise maps etc.) and a complete image manipulation
library that supports color channels, layers with alpha blending and most of
the functions and filters you would expect to find in software like GIMP (as
well as a few more suited for generating terrain height maps).
Requirements
------------
* Java 1.4
* Apache Ant
Usage
-----
Use "ant run" to compile and run the Main class, which does nothing but output
a bit of information at his time. For some examples, try:
* ant run-terrain
* ant run-texture
* ant run-grass
* ant run-hydraulic
* ant run-analyzer
Take a look at the Example* classes to see what is going on!
Documentation
-------------
At this point, documentation is almost non-existing. For a general idea about
what this software can do, see the technical paper "Realtime Procedural Terrain
Generation" which can be found on the homepage (see above).
Here is a quick overview of the classes:
Analyzer
Calculates some statistics and graphs for heightmap images
Cellular
Older but more general implementation of Voronoi - generates various types of
Voronoi diagrams
Channel
Internal greyscale image format - contains many image manipulation methods
ErosionHydraulic
Implementations of hydraulic erosion algorithms - they are generally slow and
produce uninteresting effects
ErosionThermal
Implementation of thermal erosion
ErosionVelocity
Experimental (never finished) implementations of erosion based on velocity maps
- pretty useless in their current state
ExampleAnalyzer
Example of how to use the image analysis toolkit
ExampleGrass
Example of how to use the grass texture generator
ExampleHydraulic
Example of how to use the hydraulic erosion algorithm
ExampleTerrain
Example of how to use the library to generate eroded terrain suitable for
computer games
ExampleTexture
Example of how to generate a rock-like texture using noise, Voronoi maps and
image manipulation
GLImage
Support class
GLIntImage
Support class
Hill
Generates simple smooth shapes
Layer
Internal RGB(A) image format - contains many image manipulation methods
MidpointFractalizer
Adds midpoint displacement noise to existing greyscale image
MidpointGaussian
Generates midpoint displacement noise using gaussian distribution of new values
(slow)
Midpoint
Generates midpoint displacement noise using uniform distribution of new values
(fast)
Mountain
Stripped-down version of Midpoint (not sure if there's any speed optimization
involved)
Perlin
Older but more general implementation of spectral synthesis noise (actually,
this is NOT Perlin noise!)
Spectral
Generates spectral synthesis noise (slower than Midpoint, but more flexible
wrt. modifications)
Tools
Interpolation methods and other math stuff used almost everywhere
Utils
Support class
Voronoi
Generates various types of Voronoi diagrams