说明高度图中非破坏性地形层和样条的地形编辑层功能。
Choose your operating system:
Windows
macOS
Linux
地形(Landscape) 系统使您能够为您的世界场景创建地形 - 山脉、山谷、起伏或倾斜的地面,甚至洞穴的开口 - 并通过使用一系列工具轻松修改其形状和外观。
有关开口和使用地形(Landscape)工具的信息,请参阅 创建地形 。
地形工具模式
地形工具有三种模式,可以通过地形工具窗口顶部的图标访问。
图标 |
模式 |
说明 |
---|---|---|
|
管理模式(Manage mode) |
使您能够创建新的地形,并修改地形组件。您也可在管理模式中使用 地形小工具 复制、粘贴、导入、导出部分地形。有关管理模式的更多信息,请参阅 管理模式 。 |
|
塑造模式(Sculpt mode) |
让您可以通过选择和使用特定的工具,修改地形的形状。有关塑造模式的更多信息,请参阅 造型模式 。 |
|
绘制模式(Paint mode) |
使您可以基于在地形材质中定义的图层,通过在地形上绘画纹理以修改部分地形的外观。有关绘制模式的更多信息,请参阅 绘制模式 。 |
创建一个地形意味着创建一个地形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位纹理,高度以R和G信道的形式占据16位,X和Y偏移量以8位数值分别存储在B和A信道中。
连续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的碰撞和渲染组件也可以使用关卡流送系统实现流出。