地形(Landscape) 系统使您能够为您的世界场景创建地形 - 山脉、山谷、起伏或倾斜的地面,甚至洞穴的开口 - 并通过使用一系列工具轻松修改其形状和外观。
有关开口和使用地形(Landscape)工具的信息,请参阅创建地形。
地形工具模式

地形工具有三种模式,可以通过地形工具窗口顶部的图标访问。
创建一个地形意味着创建一个地形Actor。与其他Actor一样,您可以在关卡编辑器的 细节(Details) 面板中编辑它的许多属性,包括其指定材质。有关 细节(Details) 面板的更多信息,请参阅细节面板。
地形功能
Landscape地形系统的主要功能和采用的技术如下所述。
大地形尺寸
Landscape系统为地形铺平了道路,这些地形比之前在虚幻引擎中可能出现的地形大若干个数量级。由于其强大的 细节级别(Level of Detail) (LOD)系统和高效利用内存的方式,现在可以合法地实现和使用高达8192x8192像素的高度图。虚幻引擎现在支持巨大的室外世界场景,它们允许快速、轻松地创建任意类型的游戏,而无需修改现有的引擎或工具。

Landscape内存使用
对于创建大型地形,Landscape通常是比静态网格体(Static Mesh)更好的选择。
对于顶点数据,Landscape为每个顶点使用4个字节。静态网格体(Static Mesh)以12字节矢量的形式存储位置,每个切线X和Z矢量封装为4个字节,并为每个顶点的共24或28个字节存储16位或32位浮点UV。
这意味着,对于相同的顶点密度,静态网格体(Static Mesh)将使用6或7倍于Landscape的内存。Landscape还将它们的数据存储为纹理,并且可以为遥远的区域流送未使用的LOD关卡,并在您接近它们时从后台的磁盘加载它们。Landscape使用一个常规的高度场,因此其碰撞数据也能够比静态网格体(Static Mesh)的碰撞数据更高效地存储。
静态渲染数据作为纹理存储在GPU内存中
在大多数平台上,Landscape系统在GPU内存中以纹理的形式存储地形的渲染数据,允许在顶点着色器中查找数据。数据被打包成32位纹理,高度会占据16位(通过R、G和法线通道);或者保存为两个8位的数值(分别用于X和Y,占据B和A通道)。此外,如果使用了重新拓步工具,另外一个32位纹理会保存X和Y偏移。
连续Geo-MipMap LOD
Landscape地形的LOD使用标准纹理mipmap进行处理。每个mipmap都是一个细节级别,可以使用“text2Dlod”HLSL指令指定要采样的mipmap。这不仅允许使用大量LOD,而且还能够实现平滑的LOD过渡,因为两种mip级别都可以采样,然后高度和X和Y偏移量可以内插到顶点着色器以创建一个干净利落的变换效果。
![]() |
![]() |
![]() |
---|---|---|
完全LOD 1(Fully LOD 1) | 从LOD 1变换到LOD 2(Morphing from LOD 1 to LOD 2) | 完全LOD 2(Fully LOD 2) |
高度图和权重数据流送
由于数据存储在纹理中,因此虚幻引擎4中的标准纹理流送系统可以根据需要对mipmap进行流进流出操作。这不仅适用于高度图数据,也适用于纹理层的权重。只需要每个LOD所需的mipmap,就可以在任何时候最大程度减少要使用的内存量,从而增加由于内存被释放而可以创建的地形的大小。
高分辨率LOD独立照明
由于存储了地形的X和Y斜率,所以所有的高分辨率(非LOD)法线数据都可以用于照明计算。
![]() |
![]() |
---|---|
地形LOD(Landscape LODs) | 全分辨率法线(Full Resolution Normals) |
这允许为始终使用地形的最高分辨率执行逐像素照明,甚至在无LOD的遥远组件上也可如此。
![]() |
![]() |
---|---|
简单顶点照明 | 高分辨率逐像素照明 |
当这些高分辨率的法线数据与细节法线图结合在一起时,Landscape地形可以实现非常详细的照明,却只需要极少的系统开销。
![]() |
![]() |
---|---|
仅几何体法线 | 带细节法线 |
PhysX碰撞
Landscape用一个PhysX高度场对象来进行虚幻以及刚体碰撞。您可以为每一图层指定物理材质,碰撞系统将使用每一位置的主导层来确定使用哪一种物理材质。可以使用降低的分辨率碰撞高度场(例如0.5x渲染分辨率)来节省大型Landscape地形的内存需求。远距Landscape的碰撞和渲染组件也可以使用关卡流送系统实现流出。