DGUnreal Home

Site

Home

Map Portfolio
Mesh Portfolio

Map Awards and Reviews
Map Hosting Sites

Old News:
2007
2006
2005
2004
2003
2002
2001

LCS·AVS online Resumé

See our Readme page for information regarding installing and playing our maps, and use of our custom content.





Red Orchestra

David's Maps:

Petros coming soon

Level Design:

Information & Tutorials


Tribes:Vengeance

David's Maps:

MP-Assassinate-DGSP
MP-Mercy-DGSP
MP-Truth-DGSP


Unreal II and XMP

David's Maps:

XMP-DG_Alaska

Level Design:

Meshes
Textures


Unreal Tournament

David's Maps:

DM-DG_Dyscus
DM-DG_Illusion
DM-DG_Io
DM-DG_Octagon
DM-DG_SkyScraper
DM-DG_Vapour

Jason's Maps:

DM-DG_Haunted
DM-DG_Ruins

Level Design:

Custom Scripts
Custom Sounds
Custom Textures



The Team

David R. Green
- mapper, mesher, audio/music,
- scripter, texturizer

Jason 'FRaK' Dudley - tester
See the map Readme for other testers


Contact

You can email us at
dgunreal@lilchips.com

 

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

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

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:

Alphamap contains this -> Alphamap Alpha Channel

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.

Alpha Blend

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





0706.18 · 1316 page accesses · Copyright ©2008 David R. Green · All Rights Reserved.