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 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224
|
Terraform Users Guide
Robert Gasch
This is the user's guide for terraform, an interactive digital terran
generator/modeller.
_________________________________________________________________
Table of Contents
1. [1]An Guide to the different Views
2. [2]Rendering in POVRay
3. [3]Interactive Height Field Transformations
[4]Craters
[5]Fill
[6]Fold
[7]Gaussian Hill
[8]Linear Scale
[9]Mirror
[10]Rotate
[11]Roughen/Smooth
[12]Transform
4. [13]Non-Interactive Height Field Transformations
[14]Clone
[15]Contour Line Map
[16]Erode
[17]Flowmap
[18]Invert
[19]Place POV Objects
[20]Rescale
_________________________________________________________________
Chapter 1. An Guide to the different Views
The different views/projections themselves should be self-explanatory.
The "Fast Wireframe" thing might not be so, here's a short
explanation: The default views all operate on the height field data
directly and are designed to give good quality previews. When you
select the "Fast Wireframe" option, terraform builds an index of the
actual triangles making up your height field at the given resolution.
This makes redrawing much faster, making it possible that you can
rotate this preview by clicking and dragging your mouse.
When you're in "Fast Wireframe" mode, the 2DPlane, 3DHeight and
3DLight views will be shown unaltered while the 3DWire view will
switch to the fast wireframe mode.
Generally, the height fields are much more fractal/rough than you
would think from looking at the wireframe. The Wireframe view modes
are really just an approximation of the general terrain type. The
"Grayscale" colormap with "3D Light" view is the view type which best
shows the terrain roughness. Export a few height fields to PovRay to
get a feel for this.
_________________________________________________________________
Chapter 2. Rendering in POVRay
Choose the menu File-Export-POVRay to render the current height field
using POVRay. The default template file used is
$TF_DATADIR/tf_land.pov but you can change this from the options menu
and from within the resource file. By playing around with tf_land.pov,
you can create more sophisticated renderings that are accessible from
within terraform. If you create something cool along these lines,
consider mailing it to me so that I can add it to the terraform
distribution.
_________________________________________________________________
Chapter 3. Interactive Height Field Transformations
This section covers the different transformations which support a
real-time preview.
_________________________________________________________________
Craters
Place the specified number of craters on the height field using the
specified parameters. This is a slightly modified version of John
Beale's hf-lab crater routines. On the crater dialog, if you reduce
the number of craters to 1, you can specify the exact locaton of the
crater.
_________________________________________________________________
Fill
Fill the terrain object up to the specified elevation, using using the
tightness parameter to determine how much the altered points are
allowed to deviate from the specified elevation. Per default, all the
points beneath the fill level are altered. If you chose to "Keep zero
elevation" values, points with an elevation of zero (typically there
is just one such point) will remain unaltered. This is relevant since
filling is followed by a rescale.
_________________________________________________________________
Fold
The 'fold' option allows you to create a margin at the edge of the
height field which is submerged below the current sealevel. This is
useful to force (a generated) height field to be integratable into a
scene with a predictable horizon or sealevel and is probably best used
in small multiple steps.
_________________________________________________________________
Gaussian Hill
This creates a gaussian hill at the specified location with the
specified parameters. You can use the 1st and 2nd mouse button to set
the location parameters.
_________________________________________________________________
Linear Scale
Picks a point and scales the surrounding terrain in a circular maner.
Can be used to make all sorts of circular shapes. Still needs some
work. You can use all 3 mouse buttons to set the placement parameters.
_________________________________________________________________
Mirror
Mirror the height field along one of four axis. Horizontal (-),
vertical (|), top-left bottom-right (\) or bottom-left top-right (/).
This is useful for leaving the general characteristics of the
landscape intact while changing it's layout.
_________________________________________________________________
Rotate
Rotate the height field in increments of 90 degrees.
_________________________________________________________________
Roughen/Smooth
Use neighbour-averaging to roughen or smooth the height field. The
factor determines how much of the computed roughening is actually
applied to the height field. In it's default invocation, the 4
directly neighbouring squares are used to calculate the roughening. If
you select big sampling grid, all 8 neighbouring cells will be used.
_________________________________________________________________
Transform
Transform applies a power transformation to the current height field
such that height=pow(height,factor). You can choose to invert the
power factor before applying it and wether you wish to also transform
the current sealevel.
_________________________________________________________________
Chapter 4. Non-Interactive Height Field Transformations
This section covers the differnt transformations which don't have a
real-time preview.
_________________________________________________________________
Clone
Make a copy of the current Height Field and show it in a new window.
_________________________________________________________________
Contour Line Map
Make a map of adjacent points within certain elevation bands using a
selective flood-fill algorithm. By thinning the bands, you can
approximate the Isograms (contour lines) which you can see on a real
map. STILL NEEDS SOME WORK
_________________________________________________________________
Erode
This routine calculates the flowmap and the uses the flowmap to erode
the terrain, refreshing the flowmap at regular intervals (thus trading
accuracy for speed). This is a lot faster than John Beale's code, but
needs some more work.
_________________________________________________________________
Flowmap
Calculate the flowmap of the current height field (see code for
details). You can choose between the Single-Flow-Direction algorithm
(which is reasonably fast) or the Multiple-Flow-Direction algorithm
(which is pretty damn slow). On my machine (AMD K6-233) SFD takes
about 2.5 seconds, while MFD takes around 30 minutes for a 400x400
height field.
_________________________________________________________________
Invert
Inverts the current height field, leaves the waterlevel unchanged.
_________________________________________________________________
Place POV Objects
Allows you to place a specified PovRay object on your landscape and
write a corresponding POV include file. THIS CURRENTLY IS BROKEN.
_________________________________________________________________
Rescale
Allows you to either double or half the size of the current height
field.
References
1. file://localhost/tmp/@5954.2#VIEWS
2. file://localhost/tmp/@5954.2#POVRENDER
3. file://localhost/tmp/@5954.2#INTERACTIVETRANSFORMATIONS
4. file://localhost/tmp/@5954.2#AEN32
5. file://localhost/tmp/@5954.2#AEN35
6. file://localhost/tmp/@5954.2#AEN38
7. file://localhost/tmp/@5954.2#AEN41
8. file://localhost/tmp/@5954.2#AEN44
9. file://localhost/tmp/@5954.2#AEN47
10. file://localhost/tmp/@5954.2#AEN50
11. file://localhost/tmp/@5954.2#AEN53
12. file://localhost/tmp/@5954.2#AEN56
13. file://localhost/tmp/@5954.2#NONINTERACTIVETRANSFORMATIONS
14. file://localhost/tmp/@5954.2#AEN62
15. file://localhost/tmp/@5954.2#AEN65
16. file://localhost/tmp/@5954.2#AEN68
17. file://localhost/tmp/@5954.2#AEN71
18. file://localhost/tmp/@5954.2#AEN74
19. file://localhost/tmp/@5954.2#AEN77
20. file://localhost/tmp/@5954.2#AEN80
|