Red Orchestra: OstFront 41-45 Level
Design - Tutorials - Terrain Design
Note: The information in this tutorial is also relevant for other Unreal Engine 2.5 games
such as Unreal Tournament 2004, however, much of the comments are aimed at Red
Orchestra:OstFront since it supports a further view distance and often uses larger terrain
areas in the map design.
Terrain Design
In outdoor simulation style games such as Red Orchestra:OstFront (RO:OST), the quality of
the terrain system greatly adds to the realism portrayed by the map. The Unreal
Engine 2.5 (UE2.5) terrain system implemented by RO:OST supports such a wide variety of
properties and designs, that choosing the correct terrain system can be a daunting task
for the less experienced mapper.
Unlike Unreal Tournament 2004, the UE2.5 engine version used in RO:OST continues rendering
beyond the 64k UUs distance, so it is possible to create maps whose view distance is up to
the full 10km supported by the engine's maximum world subtraction cube size.
While this informative tutorial will not initially cover the process of terrain creation
and visibility optimization, those areas will be added at some time in the future to a
sister web page.
For now, this page will simply provide a guideline as to choosing and configuring the type
of terrain that best suits large realistic outdoor maps.
Terrain Terms and Components
The terrain system in the Unreal Engine consists of the following components:
The TerrainInfo Actor

The TerrainInfo actor is essentially just a set of properties that defines how the terrain
data will be represented in the engine.
The terrain data consists of the G16 Heightmap that represents the altitude information,
one or more Alphamaps that represent the location of textures and/or decorations on the
terrain, and the TerrainInfo properties themselves.
A TerrainInfo actor is added to a map by opening the Terrain Editing dialog and clicking
on the New button on the Terrains tab. The new TerrainInfo actor is usually randomly
placed in the map, requiring a Search for it, and then manually moving it to the center of
the editor workspace.
The G16 Heightmap

The G16 Heightmap is a special Epic proprietary file that contains a square or rectangular
set of altitude data. Each data "sample point" represents an altitude
value between 0 and 65535.
The actual G16 source data is a two-dimensional array of 16-bit integers (X by Y, eg. 256
rows by 256 columns of integers). When viewed in UnrealEd the G16 is represented as
an 8-bit grayscale bitmap, with black as the lowest altitude and white as the highest
altitude.
The G16 file contains similar altitude data to RAW16 heightmaps or DEM (Digital Elevation
Model) data used in satellite elevation sets.
Each sample point or "pixel" in the heightmap would be the equivalent of
measuring the altitude of a grid area with every measurement spaced a few meters apart.
G16 Heightmaps are created automatically when a TerrainInfo is added to the map by opening
the Terrain Editing dialog and clicking on the New button on the Terrains tab.
It is highly recommended to specify the myLevel package and Heightmaps group for the G16
resource location.
The Layer Alphamaps
Layer alphamaps are used for specifying where textures or decorations are located on the
terrain.
When viewed in UnrealEd, alphamaps are commonly a solid gray color. This is because
the actual information used by the terrain system is located in the alphamap texture's
Alpha Channel. The RGB Channels (Red Green Blue) of the texture are commonly solid
gray.
When looking at both the RGB and Alpha Channel data, it will look something like the
following comparison:
contains this -> 
In the case of Texture Layers, each Alphamap pixel value determines the percentage of
opacity blending for the texture that will be applied to the equivalent vertex on the
terrain.
For this reason, the Alphamap must be the same resolution as the Heightmap, to provide a
1-to-1 corresponding blend value.
So as the engine renders the terrain triangles, it reads across the Layer alphamap rows
and columns to obtain the blend value for each texture at each heightmap vertex.
An Alphamap value of 0 (black) results in no texture blend at that vertex, a value of 127
(gray) results in a 50% texture blend at that vertex, and a value of 255 (white) results
in a 100% texture blend at that vertex.

In the case of Decorations, each Alphamap pixel value determines whether or not the
decoration staticmesh such as grass will be placed around that terrain vertex location.
Alphamaps are created automatically when a new Layer is added to the map by opening the
Terrain Editing dialog and clicking on the New button on the Layers tab.
It is highly recommended to specify the myLevel package and Alphamaps group for the
alphamap resource location.
Behind the Scene
There is additional terrain related data used by the engine that you do not have direct
access to viewing in the editor, which includes collision information for each terrain
triangle, and light value data for each terrain vertex.
Terrain Choices
The most important choice when initially developing a terrain-based map, is to determine
the appropriate heightmap resolution for the map's playfield and intended purpose and
quality.
If the heightmap resolution is too small for the playfield, then the terrain detail
quality suffers; if the heightmap resolution is too large for the playfield, then the
engine will have to render an unnecessarily large number of terrain triangles that will
inevitably impact the overall map framerate.
It can be a lot of work to change the size of the heightmap after it has already been
implemented into the map. Software such as HMCS or HMES can be used to resize
heightmaps if it is required.
The following table lists a rough guide for the best choice in resolution, based on the
overall size of the terrain playfield in the main world subtraction cube. The
TerrainScale value is the .X and .Y property.
| Terrain
Playfield Size |
Average
Detail Terrain |
High
Detail Terrain |
| 32k 32768
UUs (0.625km) |
64x64 Heightmap, 512
TerrainScale |
128x128 Heightmap, 256
TerrainScale |
| 48k 49152
UUs (0.94km) |
128x128 Heightmap, 384
TerrainScale |
256x256 Heightmap, 192
Terrainscale |
| 56k 57344 UUs
(1.1km) |
128x128 Heightmap, 448
TerrainScale |
256x256 Heightmap, 224
Terrainscale |
| 64k 65536
UUs (1.25km) |
128x128 Heightmap, 512
TerrainScale |
256x256 Heightmap, 256
Terrainscale |
| 80k 81920
UUs (1.56km) |
256x256 Heightmap, 320
Terrainscale |
512x512 Heightmap, 160
Terrainscale |
| 88k 90112 UUs
(1.72km) |
256x256 Heightmap, 352
Terrainscale |
512x512 Heightmap, 176
Terrainscale |
| 96k 98304
UUs (1.87km) |
256x256 Heightmap, 384
Terrainscale |
512x512 Heightmap, 192
Terrainscale |
| 112k 114688 UUs
(2.18km) |
256x256 Heightmap, 448
Terrainscale |
512x512 Heightmap, 224
Terrainscale |
| 128k
131072 UUs (2.5km) |
256x256 Heightmap, 512
Terrainscale |
512x512 Heightmap, 256
Terrainscale |
| 144k 147456 UUs
(2.8) |
512x512 Heightmap, 288
Terrainscale |
1024x1024
Hmap, 144 Terrainscale |
| 160k
163840 UUs (3.12km) |
512x512 Heightmap, 320
Terrainscale |
1024x1024
Hmap, 160 Terrainscale |
| 176k 180224 UUs
(3.43km) |
512x512 Heightmap, 352
Terrainscale |
1024x1024
Hmap, 176 Terrainscale |
| 192k
196608 UUs (3.75km) |
512x512 Heightmap, 384
Terrainscale |
1024x1024
Hmap, 192 Terrainscale |
| 224k 229376 UUs
(4.37km) |
512x512 Heightmap, 448
Terrainscale |
1024x1024
Hmap, 224 Terrainscale |
| 256k
262144 UUs (5km) |
512x512 Heightmap, 512
Terrainscale |
1024x1024
Hmap, 256 Terrainscale |
| 320k 327680 UUs
(6.24km) |
1024x1024
Hmap, 320 Terrainscale |
not applicable |
| 384k 393216 UUs
(7.49km) |
1024x1024
Hmap, 384 Terrainscale |
not applicable |
| 448k 458752 UUs
(8.74km) |
1024x1024
Hmap, 448 Terrainscale |
not applicable |
| 512k 524288 UUs
(9.99km) |
1024x1024
Hmap, 512 Terrainscale |
not applicable |
Notes:
- The more common terrain and world subtraction cube sizes are in bold.
- The km value is based on the UE2.5 default of 52500 UUs = 1km.
- TerrainScale.X/.Y values of 256, 384, and 512 are usually easier to match visibility
holes with.
- 1024x1024 Heightmaps are highlighted since they should not be used for most UE
games.
The second consideration would be the resultant map file size associated with each
heightmap resolution. Map files that are excessively large in size will require more
time for server-push during online games to those players who do not have the map
installed locally on their computer.
The following table lists the approximate map file size for a clean map with the main
world subtraction, skybox subtraction in solid color, the main ZoneInfo and SkyZoneInfo,
the Terrain, and a Sunlight. Both single layer and six layer versions are listed.
Each additional layer adds to the final map file size by the number of bytes in the
specific alphamap file.
| Heightmap |
Map File
Size with 1 Layer |
Map File
Size with 6 Layers |
each
Alphamap .tga |
| none |
335kb (no layers) |
not applicable |
not applicable |
| 64x64 |
10.3MB |
10.4MB |
32.7kb |
| 128x128 |
10.4MB |
10.7MB |
81.0kb |
| 256x256 |
10.7MB |
12.0MB |
273kb |
| 512x512 |
12.0MB |
17.0MB |
1.0MB |
| 1024x1024 |
46.9MB |
67.0MB |
4.01MB |
Notes:
- Adding terrain to any map will increase its file size considerably when compared to a
non-terrain map. The terrain system in the engine will add the G16 heightmap, layer
and deco alphamaps, collision information and vertex lightmap information, all of which
increase proportionally with the heightmap resolution.
- After importing and configuring a 1024x1024 terrain system, UT2004's UnrealEd 3 will not
be able to properly import and overwrite to a smaller terrain for a resize fix. The
file size will still remain at the larger value.
G16 Heightmap File
The Unreal Engine uses a proprietary file format developed by Epic called G16.
There are only a few software applications that support the G16 file format directly,
including the DGUnreal DGUG16, HMCS and HMES software.
The G16 is a 16-bit grayscale heightmap file format, providing up to 65536 discrete
altitude values.
Each altitude sample point in the heightmap equates to one vertex in the terrain mesh.
The actual rendered terrain will be the width and length of the heightmap minus one, ie. a
256x256 heightmap results in a 255x255 terrain.
TerrainInfo.TerrainScale.X and .Y
The TerrainScale.X and .Y properties equate to the exact same value in Unreal Units that
each quad of terrain will span. A quad of terrain is a pair of triangles that make
up a square or rectangular area.
So a .X and .Y value of 256 specifies that each terrain quad will be 256 UUs square.
When creating terrain that will have holes for buildings or other assets, created with
either CSG Brushes or StaticMeshes, it is usually best to choose one of the power-of-two
values for the TerrainScale.X and .Y, which facilitates easier fitting of the Brush or
Mesh without worrying about filling gaps around the edges or having the terrain triangles
protruding inside of the asset.
In most cases, the TerrainScale.X and .Y values should be identical, resulting in a square
terrain area. If either property is different than the other, the results will be a
rectangular terrain, with rectangular quads. The issues to note with a rectangular
terrain is that the texture scaling will be different in one mapping direction (U or V),
and any holes created in the terrain will be rectangular and may be more difficult to have
assets match up with them.
TerrainInfo.TerrainScale.X/Y versus ZoneInfo.DistanceFogEnd
The ZoneInfo.DistanceFogEnd property determines where the engine will start distance
culling the terrain sectors*.
For a player positioned at the center of the map (origin X:Y of 0:0), depending on the
size of the heightmap and TerrainScale/X/.Y, the DistanceFogEnd may be beyond the edge of
the terrain and no distance culling will occur.
The following table lists the distance from a player at origin to the terrain edge, versus
the maximum DistanceFogEnd value that will have any culling effect. This is for the
common TerrainScale.X/.Y values of 256.
All DistanceFogEnd values greater than maximum will simply render the entire terrain in
the frustum when the player is at map center origin.
| Heightmap |
total
terrain width |
origin
to edge width |
maximum
DistanceFogEnd |
| 64x64 |
64*256 = 16384 UUs |
8192 UUs |
8192 |
| 128x128 |
128*256 = 32768 UUs |
16384 UUs |
16384 |
| 256x256 |
256*256 = 65536 UUs |
32768 UUs |
32768 |
| 512x512 |
512*256 = 131072 UUs |
65536 UUs |
65536 |
| 1024x1024 |
1024*256 = 262144 UUs |
131072 UUs |
131072 |
* Additional methods of culling terrain sectors includes using AntiPortals.
TerrainInfo.TerrainScale.X/Y and Framerate
The values chosen for TerrainScale.X/.Y determine the total number of terrain triangles
that are normally rendered in the view frustum. The resolution of the G16 Heightmap
also has a small role in the rendering speed regarding this.
In most cases the TerrainScale.X/.Y should be somewhere between 128 at the lowest (a dense
terrain triangle layout) and 384 at the highest (a stretched terrain triangle layout).
Values below 128 create a terrain that is too dense and increases the number of triangles
that have to be rendered. The only case where .X/.Y values below 128 could be used
is on small patches of terrain that have a heightmap resolution between 16 and 64, where
the entire terrain can still be rendered without impacting the framerate excessively.
Values above 384 create a terrain that has very large quads resulting in lower terrain
detail. Note that Unreal Engine 3 supports a CLOD Tesselation design that allows for
simulated detail on terrains with lower resolutions or higher TerrainScale.X/.Y values.
The following table lists the common size of each terrain quad on 32 UU increments.
| TerrainScale.X
.Y |
Quad
size in UUs |
Quad
size in Feet (16:1) |
Quad
size in Meters (52.5:1) |
| 128 |
128 uus |
8 ft (96 inches) |
2.44 |
| 160 |
160 uus |
10 ft (120 inches) |
3.05 |
| 192 |
192 uus |
12 ft (144 inches) |
3.66 |
| 224 |
224 uus |
14 ft (168 inches) |
4.27 |
| 256 |
256 uus |
16 ft (192 inches) |
4.88 |
| 288 |
288 uus |
18 ft (216 inches) |
5.49 |
| 320 |
320 uus |
20 ft (240 inches) |
6.1 |
| 352 |
352 uus |
22 ft (264 inches) |
6.7 |
| 384 |
384 uus |
24 ft (288 inches) |
7.3 |
The following table lists the average number of terrain triangles rendered at various
TerrainScale.X/.Y values.
These results should be reasonably consistent across all computer hardware as the number
of triangles determined to be rendered is a factor of the scene and not of the hardware.
The values for the number of triangles rendered will normally jump in specific increments
due to the sector culling method of the terrain system. As the TerrainScale.X/.Y
increases beyond specific threshold values, additional sectors will be culled out of the
renderer and those large chunks of terrain triangles will be removed from the render path.
Note that these values are only for general reference. There will be slight
variances on different terrain setups and computer hardware depending on such things as
the terrain heightmap content, the capabilities of the video card which may support
smaller DrawPrimitives batches, etc.
The DistanceFogEnd values equate to:
- 16384 (16k) = 1024 feet or 312 meters of view distance
- 24576 (24k) = 1536 feet or 468 meters of view distance
- 32768 (32k) = 2048 feet or 624 meters of view distance
- 65536 (64k) = 4096 feet (¾ mile) or 1248 meters (1.2km) of view distance
- 98304 (96k) = 6144 feet (1.16 miles) or 1872.5 meters (1.9km) of view distance
- 131072 (128k) = 8192 feet (1.55 miles) or 2496.6 meters (2.5km) of view distance
| Heightmap |
DistanceFogEnd
16384 |
DistanceFogEnd
24576 |
DistanceFogEnd
32768 |
| 64x64 |
128 TS = 4930
192 TS = 4930
256 TS = 4930
320 TS = 4930
384 TS = 4930 |
128 TS = 4930
192 TS = 4930
256 TS = 4930
320 TS = 4930
384 TS = 4930 |
128 TS = 4930
192 TS = 4930
256 TS = 4930
320 TS = 4930
384 TS = 4930 |
| 128x128 |
128 TS = 14018
192 TS = 14018
256 TS = 14018
320 TS = 14018
384 TS = 10208 |
128 TS = 14018
192 TS = 14018
256 TS = 14018
320 TS = 14018
384 TS = 12514 |
128 TS = 14018
192 TS = 14018
256 TS = 14018
320 TS = 14018
384 TS = 14018 |
| 256x256 |
128 TS = 44482
192 TS = 28672
256 TS = 15360
320 TS = 15360
384 TS = 10240 |
128 TS = 44482
192 TS = 44482
256 TS = 28672
320 TS = 21504
384 TS = 15360 |
128 TS = 44482
192 TS = 44482
256 TS = 44482
320 TS = 36832
384 TS = 28672 |
| 512x512 |
128 TS = 46080
192 TS = 28672
256 TS = 15360
320 TS = 15360
384 TS = 10240 |
128 TS = 91136
192 TS = 46080
256 TS = 28672
320 TS = 21504
384 TS = 15360 |
128 TS = 154562
192 TS = 79872
256 TS = 46080
320 TS = 36864
384 TS = 28672 |
| 1024x1024 |
128 TS = 46080
192 TS = 28672
256 TS = 15360
320 TS = 15360
384 TS = 10240 |
128 TS = 93184
192 TS = 45056
256 TS = 28672
320 TS = 21504
384 TS = 15360 |
128 TS = 156672
192 TS = 79872
256 TS = 46080
320 TS = 34816
384 TS = 25600 |
| Heightmap |
DistanceFogEnd
65536 |
DistanceFogEnd
98304 |
DistanceFogEnd
131072 |
| 64x64 |
128 TS = 4930
192 TS = 4930
256 TS = 4930
320 TS = 4930
384 TS = 4930 |
128 TS = 4930
192 TS = 4930
256 TS = 4930
320 TS = 4930
384 TS = 4930 |
128 TS = 4930
192 TS = 4930
256 TS = 4930
320 TS = 4930
384 TS = 4930 |
| 128x128 |
128 TS = 14018
192 TS = 14018
256 TS = 14018
320 TS = 14018
384 TS = 14018 |
128 TS = 14018
192 TS = 14018
256 TS = 14018
320 TS = 14018
384 TS = 14018 |
128 TS = 14018
192 TS = 14018
256 TS = 14018
320 TS = 14018
384 TS = 14018 |
| 256x256 |
128 TS = 44482
192 TS = 44482
256 TS = 44482
320 TS = 44482
384 TS = 44482 |
128 TS = 44482
192 TS = 44482
256 TS = 44482
320 TS = 44482
384 TS = 44482 |
128 TS = 44482
192 TS = 44482
256 TS = 44482
320 TS = 44482
384 TS = 44482 |
| 512x512 |
128 TS = 154562 / 137280
192 TS = 149986 / 135232
256 TS = 154562 / 135232
320 TS = 107520 / 91136
384 TS = 79872 / 67584 |
128 TS =
133184
192 TS = 135232
256 TS = 133184
320 TS = 133184
384 TS = 135232 |
128 TS =
133184
192 TS = 133184
256 TS = 133184
320 TS = 133184
384 TS = 133184 |
| 1024x1024 |
128 TS = 571330 / 514176
192 TS = 282624 / 249856
256 TS = 156672 / 136192
320 TS = 107520 / 91136
384 TS = 76800 / 68608 |
128 TS =
508032
192 TS = 508032
256 TS = 295936
320 TS = 207872
384 TS = 136192 |
128 TS =
514176
192 TS = 513248
256 TS = 508032
320 TS = 344064
384 TS = 249856 |
Notes:
- "TS" = TerrainScale.X/.Y properties.
- The results in black are from UT2004, the results in blue are from RO:OST.
- RO:OST renders on average 15% fewer triangles than UT2004 (Frustum FOV difference?).
- This test was performed with a near-flat complex algorithmically generated terrain.
- The terrain system was comprised of only one base texture layer.
- No other objects were in the scene.
- No AntiPortals or other optimization techiques were applied.
- The number of triangles rendered was determined using the "stat render"
console command.
- The game was in Spectate mode.
- The camera was at map origin which is the center of the terrain.
- The DistanceFogStart was set to 0.
Examining the results from this test shows that the maximum useable terrain values, based
on current average hardware* and an absolute maximum terrain triangle frustum rendering
count of 100,000, would be:
64x64 Heightmap
- all (128 through 384 TerrainScale)
128x128 Heightmap
- all (128 through 384 TerrainScale)
256x256 Heightmap
- all (128 through 384 TerrainScale)
512x512 Heightmap
- DistanceFogEnd of 16384 = all (128 through 384 TerrainScale)
- DistanceFogEnd of 24576 = all (128 through 384 TerrainScale)
- DistanceFogEnd of 32768 = 192 TerrainScale or greater
- DistanceFogEnd of 65536 = 320 TerrainScale or greater
- DistanceFogEnd of 98304 = unusable
- DistanceFogEnd of 131072 = unusable
1024x1024 Heightmap
- DistanceFogEnd of 16384 = all (128 through 384 TerrainScale)
- DistanceFogEnd of 24576 = all (128 through 384 TerrainScale)
- DistanceFogEnd of 32768 = 192 TerrainScale or greater
- DistanceFogEnd of 65536 = 320 TerrainScale or greater
- DistanceFogEnd of 98304 = unusable
- DistanceFogEnd of 131072 = unusable
* Current average hardware would be a P4-3.2GHz HT, 2GB RAM, ATI X800XT or X1600.
Systems with this hardware can usually push on average 250,000 total scene triangles.
TerrainInfo.TerrainScale.Z
The TerrainScale.Z property specifies the amount of scaling performed in the Z direction
-- this is the overall altitude that the terrain triangles can reach.
The following table lists common TerrainScale.Z values and the equivalent maximum altitude
range that supports from the lowest to highest heightmap value (0 or black is lowest G16
altitude, 65536 or white is highest G16 altitude). Rarely will the TerrainScale.Z
value be greater than 64 in actual use.
The actual ratio is 1:256 where 1 TerrainScale.Z unit = 256 Unreal Units of total
heightmap altitude range.
So divide the desired total Unreal Units altitude range you want by 256 to get the
TerrainScale.Z that you should use.
| TerrainScale.Z |
Altitude
UUs |
UU/step |
Range in
Feet |
in/step |
Range in
Meters |
mm/step |
| 1 |
256 |
0.0039 |
16 |
0.003" |
4.88 |
0.074 |
| 16 |
4,096 |
0.0625 |
256 |
0.047" |
78 |
1.19 |
| 32 |
8,192 |
0.125 |
512 |
0.094" |
156 |
2.38 |
| 64 |
16,384 |
0.25 |
1024 (0.2 mile) |
0.1875" |
312 |
4.76 |
| 128 |
32,768 |
0.5 |
2048 (0.388 mile) |
0.375" |
624.15 (0.625 km) |
9.524 |
| 256 |
65,536 |
1.0 |
4096 (0.776 mile) |
0.75" |
1248.3 (1.25km) |
19.05 |
| 512 |
131,072 |
2.0 |
8192 (1.55 miles) |
1.5" |
2496.61 (2.5km) |
38.095 |
| 1024 |
262,144 |
4.0 |
16384 (3.1 miles) |
3.0" |
4993.22 (5km) |
76.19 |
| 2048 |
524,288 |
8.0 |
32768 (6.2 miles) |
6.0" |
9986.438 (10km) |
152.38 |
| 4096 |
1,048,576 |
16.0 |
65536 (12.4 miles) |
12.0" |
19972.876 (20km) |
304.76 |
Notes:
- The default Unreal Engine conversion units are 16 UU = 1 foot and 52.5 UU = 1 meter.
- As a comparative altitude value, Mt Everest is 29,029 feet or 8,848 meters in height.
TerrainInfo.Properties
The following are relevant TerrainInfo properties for the base terrain setup:
Be sure to set the relevant ZoneInfo for the zone the TerrainInfo actor is located in to
ZoneInfo.bTerrainZone = True.
| Advanced |
| bEdShouldSnap |
This forces actors in the
editor to snap on the grid lines.
Default = False
I always set the TerrainInfo actor to location 0:0:0 then set this True to allow for
proper aligning of the TerrainInfo onto the grid, which also facilitates lining up the
terrain quads onto the grid for creation of any visibility holes. Once the
TerrainInfo is snapped to grid, it can then be adjusted so that its quads perfectly line
up on the grid. |
| bLockLocation |
Locks the actor from being
moved within the editor.
Default = False
After creating the terrain this should usually be set to True to prevent accidental
movement of the actor. |
| TerrainInfo |
| bKCollisionHalfRes |
Specifies that Karma
Physics Collision should be calculated at half the terrain resolution.
Default = False.
Leave this at False. |
| DecoLayerOffset |
Specifies the number of
Unreal Units that all DecoLayers are to be biased from the terrain triangles.
Default = 0.00
Changing this property will move all DecoLayers higher or lower against the terrain
triangles. Positive values will move all DecoLayers upward, negative values will
move all DecoLayers downward.
This property will only ever be used if all of the map's DecoLayers are floating slightly
above the terrain and you wish to move them all down. |
| DecoLayers[(array)] |
Contains the array of
DecoLayer properties.
DecoLayer entries in this array should be added or removed using the Terrain Editing
dialog's Decorations tab. Array entry add/remove should not be performed with the
Empty/Add/Delete buttons here.
It is usually recommended to create all heightmaps and alphamaps in the myLevel package. |
| Inverted |
Specifies to invert the
terrain (ceiling or roof).
Default: False
This is useful for things such as cave ceilings. |
| Layers [(array)] |
Contains the array of
texture Layer properties.
Texture Layer entries in this array should be added or removed using the Terrain Editing
dialog's Layers tab. Array entry add/remove should not be performed with the
Empty/Add/Delete buttons here. |
| TerrainMap |
Specifies the absolute
path and name of the Heightmap file.
This property is automatically set when a new Terrain is created in the Terrain Editing
dialog by clicking on the New button on the Terrains tab.
This property should only ever be changed directly if you are familiar with the workings
of the engine.
It is usually recommended to create all heightmaps and alphamaps in the myLevel package. |
| TerrainScale |
Specifies the horizontal
and vertical scale of the Terrain.
Default: X = 64, Y = 64, Z = 64
The .X/.Y properties specify the number of Unreal Units that each Terrain Quad will occupy
in width and length. A .X/.Y of 256 results in a quad that is 256x256 UUs square.
It is recommended to use a square aspect ratio quad, so .X/.Y should normally be identical
values.
The .Z property specifies the altitude scaling of the terrain.
In most cases, a value between 16 and 64 is reasonable.
The ratio is 1 .Z = 256 UUs of altitude range. |
| TerrainSectorSize |
Specifies the number of
terrain quads that the terrain is culled at.
Default = 16
The terrain is tested for rendering and culling on chunks of quads that are
TerrainSectorSize by TerrainSectorSize square. So a TerrainSectorSize of 16 results
in chunks of 256 quads (16 rows by 16 columns) being tested for rendering visibility.
In virtually every case this should be left at the default value.
Changing this value haphazardly can result in a map that renders slower. |
| VertexLightMap |
Specifies an optional
vertex lightmap file.
Default = None
The vertex lightmap file can be used to replace the standard engine lighting on the
terrain with a lightmap that has been generated externally such as through raytracing in
3DS Max.
Note however that this lightmap is still per-vertex. |
Reference Links
Epic Unreal Developer Network
Terrain Tutorial
|