I love the smell of UnrealEd crashing in the morning. – tarquin

UE3:Terrain (UDK)

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
UDK Object >> Actor >> Info >> Terrain

Contents

Package: 
Engine
This class in other games:
UT3


Properties[edit]

Property group 'Collision'[edit]

bAllowRigidBodyUnderneath[edit]

Type: bool

Modifiers: const

If true, this allows rigid bodies to go underneath visible areas of the terrain. This adds some physics cost.

bBlockRigidBody[edit]

Type: bool

Modifiers: const

If false, primitive does not block rigid body physics.

Property is propagated to terrain components.

Default value: True

CollisionTesselationLevel[edit]

Type: int

The tessellation level to utilize when performing collision checks with non-zero extents.

Default value: 1

Property group 'Lighting'[edit]

bAcceptsDynamicLights[edit]

Type: bool

Modifiers: const

If false, primitive does not accept dynamic lights, aka lights with HasStaticShadowing() == FALSE

Property is propagated to terrain components.

Default value: True

bBilinearFilterLightmapGeneration[edit]

Type: bool

If true, the lightmap generation will be performed using the bilinear filtering that all other lightmap generation in the engine uses.

Default value: True

bCastDynamicShadow[edit]

Type: bool

Modifiers: const

If false, primitive does not cast dynamic shadows.

Property is propagated to terrain components .

Default value: True

bCastShadow[edit]

Type: bool

Whether terrain should cast shadows.

Property is propagated to terrain components

Default value: True

bEnableSpecular[edit]

Type: bool

If TRUE, enable specular on this terrain.

bForceDirectLightMap[edit]

Type: bool

Modifiers: const

If true, forces all static lights to use light-maps for direct lighting on the terrain, regardless of the light's UseDirectLightMap property.

Property is propagated to terrain components .

Default value: True

bIsOverridingLightResolution[edit]

Type: bool

If true, the light/shadow map size is no longer restricted... The size of the light map will be (per component): INT LightMapSizeX = Component->SectionSizeX * StaticLightingResolution + 1; INT LightMapSizeY = Component->SectionSizeY * StaticLightingResolution + 1;

So, the maximum size of a light/shadow map for a component will be: MaxMapSizeX = MaxComponentSize * StaticLightingResolution + 1 MaxMapSizeY = MaxComponentSize * StaticLightingResolution + 1

Be careful with the setting of StaticLightingResolution when this mode is enabled. It will be quite easy to run up a massive texture requirement on terrain!

LightingChannels[edit]

Type: LightComponent.LightingChannelContainer

Modifiers: const

Lighting channels controlling light/ primitive interaction. Only allows interaction if at least one channel is shared

Default value:

Member Value
bInitialized True
Static True

StaticLightingResolution[edit]

Type: int

The resolution to cache lighting at, in texels/patch. A separate shadow-map is used for each terrain component, which is up to (MaxComponentSize * StaticLightingResolution + 1) pixels on a side. Must be a power of two, 1 <= StaticLightingResolution <= MaxTesselationLevel.

Default value: 4

Property group 'Lightmass'[edit]

LightmassSettings[edit]

Type: EngineTypes.LightmassPrimitiveSettings

Lightmass settings for the terrain

Default value:

Member Value
DiffuseBoost 1.0
EmissiveBoost 1.0
EmissiveLightFalloffExponent 2.0
FullyOccludedSamplesFraction 1.0
SpecularBoost 1.0

Property group 'Physics'[edit]

TerrainPhysMaterialOverride[edit]

Type: PhysicalMaterial

Modifiers: const

PhysicalMaterial to use for entire terrain

Property group 'Terrain'[edit]

bMorphingEnabled[edit]

Type: bool

Whether to utilize morping terrain or not

bMorphingGradientsEnabled[edit]

Type: bool

Whether to utilize morping gradients or not (bMorphingEnabled must be true for this to matter)

bShowWireframe[edit]

Type: bool

Tells the terrain to render in wireframe.

DecoLayers[edit]

Type: array<TerrainDecoLayer>

Modifiers: const

Array of the decoration layers applied

EditorTessellationLevel[edit]

Type: int

Modifiers: transient

Editor-viewing tessellation level

Layers[edit]

Type: array<TerrainLayer>

Modifiers: const

Array of the terrain layers applied to the terrain

MaxComponentSize[edit]

Type: int

For rendering and collision, split the terrain into components with a maximum size of (MaxComponentSize,MaxComponentSize) patches. The terrain is split up into rectangular groups of patches called terrain components for rendering. MaxComponentSize is the maximum number of patches in a single row/column of a terrain component. Generally, all components will be MaxComponentSize patches square, but on terrains with a patch resolution which isn't a multiple of MaxComponentSize, there will be some components along the edges which are smaller.

This is limited by the MaxTesselationLevel, to prevent the vertex buffer for a fully tessellated component from being > 65536 vertices. For a MaxTesselationLevel of 16, MaxComponentSize is limited to <= 15. For a MaxTesselationLevel of 8, MaxComponentSize is limited to <= 31.

PostEditChange clamps this to be >= 1.

Default value: 16

MaxTesselationLevel[edit]

Type: int

The maximum number of quads in a single row/column of a tessellated patch.

Must be a power of two, 1 <= MaxTesselationLevel <= 16

Default value: 4

MinTessellationLevel[edit]

Type: int

The minimum number of quads in a tessellated patch. Must be a power of two, 1 <= MaxTesselationLevel

Default value: 1

NormalMapLayer[edit]

Type: int

The index of the layer that supplies the normal map for the whole terrain. If this is -1, the terrain will compile the normal property the old way (all normal maps blended together). If this is a valid index into the layer array, it will compile the normal property only for the material(s) contained in said layer.

Default value: -1

NumPatchesX[edit]

Type: int

The number of patches in a single row of the terrain's patch grid.

PostEditChange clamps this to be >= 1.

Note that if you make this and/or NumPatchesY smaller, it will destroy the height-map/alpha-map data which is no longer used by the patches.If you make the dimensions larger, it simply fills in the new height-map/alpha-map data with zero.

Default value: 1

NumPatchesY[edit]

Type: int

The number of patches in a single column of the terrain's patch grid.

PostEditChange clamps this to be >= 1.

Default value: 1

TesselationDistanceScale[edit]

Type: float

The scale factor to apply to the distance used in determining the tessellation level to utilize when rendering a patch. TessellationLevel = SomeFunction((Patch distance to camera) * TesselationDistanceScale)

Default value: 1.0

TessellationCheckDistance[edit]

Type: float

The radius from the view origin that terrain tessellation checks should be performed. If less than 0, the general setting from the engine configuration will be used. If 0.0, every component will be checked for tessellation changes each frame.

Default value: -1.0

WireframeColor[edit]

Type: Object.Color

The color to use when rendering the wireframe of the terrain.

Default value:

Member Value
A 0
B 255
G 255
R 0

Internal variables[edit]

AlphaMaps[edit]

Type: array<AlphaMap>

Modifiers: native, const

Array of the alpha maps between layers

bHeightmapLocked[edit]

Type: bool

The terrain heightmap is locked - no editing can take place on it

bLocked[edit]

Type: bool

The terrain is locked - no editing can take place on it

bShowingCollision[edit]

Type: bool

Viewing collision tessellation level

CachedDisplacements[edit]

Type: array<byte>

Modifiers: native, const

INTERNAL - Displacement related values

CachedTerrainMaterials[edit]

Type: CachedTerrainMaterialArray

Array size: 2

Modifiers: native, const

array of cached terrain materials for SM2,SM3

Heights[edit]

Type: array<TerrainHeight>

Modifiers: private, const, native

Array of the terrain heights

InfoData[edit]

Type: array<TerrainInfoData>

Modifiers: private, const, native

Array of the terrain information data (visible, etc.)

LightingGuid[edit]

Type: Object.Guid

Modifiers: private, const

Unique ID for this terrain, used for caching during distributed lighting

MaxCollisionDisplacement[edit]

Type: float

Modifiers: native, const


NumSectionsX[edit]

Type: int

Modifiers: const

Internal values used to setup components

The number of sections is the number of terrain components along the X and Y of the 'grid'.

NumSectionsY[edit]

Type: int

Modifiers: const


NumVerticesX[edit]

Type: int

Modifiers: const

The number of vertices currently stored in a single row of height and alpha data. Updated from NumPatchesX when Allocate is called(usually from PostEditChange).

NumVerticesY[edit]

Type: int

Modifiers: const

The number of vertices currently stored in a single column of height and alpha data. Updated from NumPatchesY when Allocate is called(usually from PostEditChange).

ReleaseResourcesFence[edit]

Type: pointer{FRenderCommandFence}

Modifiers: native, const

Command fence used to shut down properly

SectionSize[edit]

Type: int

Modifiers: const

Legacy!

SelectedVertices[edit]

Type: array<SelectedTerrainVertex>

Modifiers: transient


TerrainComponents[edit]

Type: array<TerrainComponent>

Modifiers: const, nontransactional

The array of terrain components that are used by the terrain

WeightedMaterials[edit]

Type: array<TerrainWeightedMaterial>

Modifiers: private, native, const

INTERNAL - The weighted materials and blend maps

WeightedTextureMaps[edit]

Type: array<TerrainWeightMapTexture>

Modifiers: private, const, native


Default values[edit]

Property Value
bBlockActors True
bCollideActors True
bEdShouldSnap True
bHidden False
bNoDelete True
bStatic True
bWorldGeometry True
CollisionType COLLIDE_CustomDefault
DrawScale3D
Member Value
X 256.0
Y 256.0
Z 256.0

Subobjects[edit]

Sprite[edit]

Class: Engine.SpriteComponent

Inherits from: Info.Sprite

Property Value
ReplacementPrimitive None
Sprite Texture2D'EditorResources.S_Terrain'

Structs[edit]

AlphaMap[edit]

A mapping used to apply a layer to the terrain. Full structure can be found in UnTerrain.h, FAlphaMap.

(No member variables.)

CachedTerrainMaterialArray[edit]

Modifiers: native

array<pointer{FTerrainMaterialResource}> CachedMaterials 
No UObject references.

SelectedTerrainVertex[edit]

Selected vertex structure - used for vertex editing

int
The position of the vertex.
int
The position of the vertex.
int Weight 
The weight of the selection.

TerrainDecoLayer[edit]

A decoration layer - used to easily apply static meshes to the terrain

string Name 
The name of the DecoLayer, for UI display purposes.
array<TerrainDecoration> Decorations 
The decoration(s) to apply for this layer.
int AlphaMapIndex 
INTERNAL: The index of the alpha map that represents the application of this layer.

Default values:

Property Value
AlphaMapIndex -1

TerrainDecoration[edit]

A decoration source for terrain DecoLayers.

PrimitiveComponentFactory Factory 
The factory used to generate the decoration mesh.
float MinScale 
The min scale to apply to the source mesh.
float MaxScale 
The max scale to apply to the source mesh.
float Density 
The density to use when applying the mesh to the terrain.
float SlopeRotationBlend 
The amount to rotate the mesh to match the slope of the terrain

where it is being placed. If 1.0, the mesh will match the slope exactly.

int RandSeed 
The value to use to seed the random number generator.
array<TerrainDecorationInstance> Instances 
INTERNAL: An array of instances of the decoration applied to the

terrain.

Default values:

Property Value
Density 0.01
MaxScale 1.0
MinScale 1.0

TerrainDecorationInstance[edit]

A decoration instance applied to the terrain. Used internally to apply DecoLayers.

PrimitiveComponent Component 
No UObject references.
float
float
float Scale 
int Yaw 

TerrainHeight[edit]

A height data entry that is stored in an array for the terrain. Full structure can be found in UnTerrain.h, FTerrainHeight.

(No member variables.)

TerrainInfoData[edit]

InfoData entries for each patch in the terrain. This includes information such as whether the patch is visible or not (holes). Full structure can be found in UnTerrain.h, FTerrainInfoData.

(No member variables.)

TerrainLayer[edit]

A layer that can be painted onto the terrain.

string Name 
The name of the layer, for UI display purposes.
TerrainLayerSetup Setup 
The TerrainLayerSetup, which declares the material(s) used in the layer.
int AlphaMapIndex 
INTERNAL: The index of the alpha map that represents the application of this layer.
bool Highlighted 
Whether the layer should be highlighted when rendered.
bool WireframeHighlighted 
Whether the layer should be wireframe highlighted when rendered.

CURRENTLY NOT IMPLEMENTED

bool Hidden 
Whether the layer is hidden (not rendered).
Object.Color HighlightColor 
The color to highlight the layer with.
Object.Color WireframeColor 
The color to wireframe highlight the layer with.
int MinX 
Rectangle encompassing all the vertices this layer affects.

TerrainLayerSetup::SetMaterial() uses this to avoid rebuilding terrain that has not changed

int MinY 
Rectangle encompassing all the vertices this layer affects.

TerrainLayerSetup::SetMaterial() uses this to avoid rebuilding terrain that has not changed

int MaxX 
Rectangle encompassing all the vertices this layer affects.

TerrainLayerSetup::SetMaterial() uses this to avoid rebuilding terrain that has not changed

int MaxY 
Rectangle encompassing all the vertices this layer affects.

TerrainLayerSetup::SetMaterial() uses this to avoid rebuilding terrain that has not changed

Default values:

Property Value
AlphaMapIndex -1
HighlightColor
Member Value
B 255
G 255
R 255

TerrainMaterialResource[edit]

Terrain material resource - compiled terrain material used to render the terrain. Full structure can be found in UnTerrain.h, FTerrainMaterialResource.

(No member variables.)

TerrainWeightedMaterial[edit]

A weighted material used on the terrain. Full structure can be found in UnTerrain.h, FTerrainWeightedMaterial.

(No member variables.)

Functions[edit]

Native functions[edit]

CalcLayerBounds[edit]

native final function CalcLayerBounds ()

for each layer, calculate the rectangle encompassing all the vertices affected by it and store the result in the layer's MinX, MinY, MaxX, and MaxY properties

Events[edit]

PostBeginPlay[edit]

simulated event PostBeginPlay ()

Overrides: Actor.PostBeginPlay