Landscape室外地形

为大型开放室外环境创建地形的Landscape系统。

Windows
MacOS
Linux

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

有关开口和使用地形(Landscape)工具的信息,请参阅创建地形

地形工具模式

Landscape Tool Modes

地形工具有三种模式,可以通过地形工具窗口顶部的图标访问。

图标

模式

说明

Landscape_ManageMode.png

管理模式(Manage mode)

使您能够创建新的地形,并修改地形组件。您也可在管理模式中使用地形小工具 复制、粘贴、导入、导出部分地形。有关管理模式的更多信息,请参阅管理模式

Landscape_SculptMode.png

塑造模式(Sculpt mode)

让您可以通过选择和使用特定的工具,修改地形的形状。有关塑造模式的更多信息,请参阅造型模式

Landscape_PaintMode.png

绘制模式(Paint mode)

使您可以基于在地形材质中定义的图层,通过在地形上绘画纹理以修改部分地形的外观。有关绘制模式的更多信息,请参阅绘制模式

创建一个地形意味着创建一个地形Actor。与其他Actor一样,您可以在关卡编辑器的 细节(Details) 面板中编辑它的许多属性,包括其指定材质。有关 细节(Details) 面板的更多信息,请参阅细节面板

地形功能

Landscape地形系统的主要功能和采用的技术如下所述。

大地形尺寸

Landscape系统为地形铺平了道路,这些地形比之前在虚幻引擎中可能出现的地形大若干个数量级。由于其强大的 细节级别(Level of Detail) (LOD)系统和高效利用内存的方式,现在可以合法地实现和使用高达8192x8192像素的高度图。虚幻引擎现在支持巨大的室外世界场景,它们允许快速、轻松地创建任意类型的游戏,而无需修改现有的引擎或工具。

Landscape_Terrain_Size.png

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位纹理,高度以R和G信道的形式占据16位,X和Y偏移量以8位数值分别存储在B和A信道中。

连续Geo-MipMap LOD

Landscape地形的LOD使用标准纹理mipmap进行处理。每个mipmap都是一个细节级别,可以使用"text2Dlod"HLSL指令指定要采样的mipmap。这不仅允许使用大量LOD,而且还能够实现平滑的LOD过渡,因为两种mip级别都可以采样,然后高度和X和Y偏移量可以内插到顶点着色器以创建一个干净利落的变换效果。

Landscape_LOD1.png

Landscape_LOD1toLOD2.png

Landscape_LOD2.png

完全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)法线数据都可以用于照明计算。

Landscape_LODs.png

Landscape_FullResNormals.png

地形LOD(Landscape LODs)

全分辨率法线(Full Resolution Normals)

这允许为始终使用地形的最高分辨率执行逐像素照明,甚至在无LOD的遥远组件上也可如此。

Landscape_SimpleVertexLighting.png

Landscape_HRPerPixel.png

简单顶点照明

高分辨率逐像素照明

当这些高分辨率的法线数据与细节法线图结合在一起时,Landscape地形可以实现非常详细的照明,却只需要极少的系统开销。

Landscape_GeometryNormals.png

Landscape_DetailNormals.png

仅几何体法线

带细节法线

PhysX碰撞

Landscape用一个PhysX高度场对象来进行虚幻以及刚体碰撞。您可以为每一图层指定物理材质 ,碰撞系统将使用每一位置的主导层来确定使用哪一种物理材质。可以使用降低的分辨率碰撞高度场(例如0.5x渲染分辨率)来节省大型Landscape地形的内存需求。远距Landscape的碰撞和渲染组件也可以使用关卡流送系统实现流出。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback