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

简单顶点照明(Simple Vertex Lighting)

高分辨率逐像素照明(High Res Per-Pixel Lighting)

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

Landscape_GeometryNormals.png

Landscape_DetailNormals.png

仅几何体法线(Geometry Normals Only)

带细节法线(With Detail Normals)

PhysX碰撞

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

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见