即时新闻 World Creator 2026.2 发布 阅读更多
什么是数字地形?
高度图
生成地形数据
地形拓扑和网格生成
地形纹理
地表数据层
在地形上放置物体
实用技巧

数字地形基础

本文将全面介绍数字地形创建。

什么是数字地形?

World Creator Digital Terrain Fundamentals

数字地形是游戏和视觉特效中几乎所有户外环境的基础。无论您是要制作广阔的奇幻景观、战火纷飞的战场,还是另一个世界的外星表面,了解数字地形的工作原理都是任何环境艺术家、技术艺术家或着色器程序员的必备知识。

数字地形创建将艺术构想与技术工具相结合,塑造出可信的景观,为故事和游戏提供支持。从雕刻山脉和山谷到定义侵蚀模式、表面材料、植被分布和大气环境,地形在建立场景的视觉识别和真实感方面发挥着核心作用。

现代工具允许艺术家使用程序技术、基于模拟的侵蚀以及模仿自然地质过程的分层遮蔽系统来生成复杂的景观。这使创作者能够高效地构建庞大而细致的世界,同时对环境的各个方面保持高度的控制。

在本文中,我们将探讨数字地形创建背后的基本概念,讨论常见的技术和工作流程,并为了解 professional 游戏、电影和实时应用环境的构建提供一个起点。无论您是刚刚开始工作,还是希望完善工作流程,扎实掌握地形基础知识都将帮助您创建更具说服力和视觉冲击力的世界。

高度图

World Creator Heightmap Title

高度图是几乎所有实时地形系统的基础。它是一种灰度图像,通常为正方形,分辨率为 2 的幂次方(512×512、1024×1024、2048×2048 等),每个像素的亮度代表一个海拔值。白色 = 高,黑色 = 低,灰色 = 介于两者之间。

When an engine or tool reads a heightmap, it takes a flat grid of vertices and displaces each one vertically by the corresponding pixel value. The result is your terrain mesh. In other words, the terrain geometry is reconstructed directly from the brightness values of the image. This approach is extremely efficient, which is why heightmaps are widely used in real-time engines such as Unity, Unreal Engine, and many proprietary rendering systems.

World Creator Large Render 83
World Creator Large Render 86

比特深度在这里非常重要。标准的 8 位灰度图像有 256 个可能的值(0-255)。这就提供了 256 个不同的高度等级,对于粗糙的地形没有问题,但在斜坡或平缓的山坡上会产生明显的 "阶梯 "现象。这些伪影在地形表面上显示为细微的条带。因此,大多数 professional 工作流程通常使用 16 位高度贴图(65,536 级),甚至使用 32 位浮点数据,这样可以提供更高的精度,制作出更平滑的地形表面。

提高位深度的另一个重要原因是,地形数据通常需要经过多个处理步骤,如侵蚀模拟、过滤和混合。如果精度太低,这些操作中的每一个都会带来舍入误差。使用更高的精度可以确保地形在经过复杂的修改后仍能保持平滑的梯度和自然的过渡。

World Creator Heightmap with 8 Bit Depth
World Creator Heightmap with 16 Bit Depth

在使用高度贴图和地形系统时,有几个重要的属性和技术注意事项需要牢记。了解这些方面对于实现逼真的景观、保持良好的性能以及避免地形创建过程中可能出现的常见问题至关重要。以下几点强调了影响高度贴图行为的一些关键因素,以及在典型的地形工作流程中应如何使用高度贴图:

决议

覆盖 1 公里地形的 1024×1024 高度贴图的精度大约为每米一个像素。对于特写游戏环境来说,这通常过于粗糙,尤其是需要小悬崖、侵蚀通道或地形切口等细节特征时。高精细环境可以使用 4096×4096 或更高的分辨率,不过这也会增加内存使用量和处理要求。

世界规模

高度图的分辨率与场景中地形的实际大小无关。512×512 的高度图可能代表一座小山、一个山谷或整个山脉,这完全取决于引擎内部定义的比例值。这种灵活性允许美工人员在不同比例下重复使用相同的地形数据,但这也意味着,要保持可信的比例和逼真的地形特征,适当的缩放是必不可少的。

瓦工

大型开放世界通常被分割成多个地块,每个地块都有自己的高度图。这种方法可以让引擎动态流式传输地形数据,并高效地渲染大型景观。然而,要保持地砖边界的无缝,就需要仔细关注边缘像素值。即使是很小的不匹配也会在地形网格中产生明显的接缝或裂缝。因此,许多 professional 工作流程都使用专门的工具或导出管道,以确保相邻地砖共享相同的边界数据。

除了这些基础数据外,高度贴图通常还与其他地形数据相结合,例如法线贴图、溅射贴图、生物群落遮罩以及控制材质、植被位置和环境效果的程序分布。虽然这些系统增加了视觉复杂性和真实感,但高度图本身仍然是定义景观形状和结构的基本图层。

生成地形数据

World Creator Terrain Data

在为游戏、模拟或视觉特效创建地形时,高度贴图本身必须来自某个地方。多年来,出现了几种生成高度贴图数据的常用方法,每种方法都有自己的优势、局限性和理想的使用情况。在实践中,大多数 professional 工作流程都会结合多种技术,以实现逼真度、艺术控制和制作效率之间的最佳平衡。 World Creator 等工具专门用于统一这些方法,使艺术家能够在快速、实时的工作流程中生成、修改和完善地形。广义上讲,有三种主要方法可用于创建高度贴图:

程序生成

程序生成是创建地形最广泛使用的技术之一。它依靠数学算法自动生成地形,通常只需相对较少的人工操作就能生成令人惊讶的自然效果。大多数程序化地形系统的核心是噪声函数,如 Perlin 噪声、Simplex 噪声、Worley 噪声,以及更高级的变体,如域扭曲分形噪声。这些算法生成伪随机模式,模仿自然环境中的不规则复杂性。通过堆叠不同频率和振幅的多层噪声--一种被称为分形布朗运动(fBm)的技术--艺术家可以创造出既包含大尺度地貌又包含较小表面细节的地形。

World Creator Procedural Generation Simple Sample

World Creator 等工具大量使用了程序生成技术,但提供的是基于节点或图层的直观工作流程。艺术家无需手动构建数学噪声图,而是可以实时结合地形层、过滤器和程序遮罩,快速塑造景观。

然而,仅靠原始噪声很少能生成令人信服的地形。虽然它可以生成山脉和山谷,但结果往往看起来是合成的或过于混乱。这就是侵蚀模拟变得极其重要的原因。

现代地形工具包括先进的侵蚀模拟,如水力侵蚀、热风化和沉积物沉积。这些系统模拟了自然地质过程,例如水流经过数千次迭代流过地形,在较低区域刻画山谷并沉积泥沙。其结果是,地形的可信度和地质的合理性大大提高。在许多情况下,一次侵蚀就能将简单的噪声地形转化为与真实世界的山脉和河流系统非常相似的地貌。

摄影测量与真实世界数据

高度图数据的另一个强大来源是真实世界的高程数据集。几十年来,各国政府、研究机构和空间机构利用卫星测量、雷达扫描和航空勘测绘制了地球表面地图。

美国地质调查局(USGS)和美国国家航空航天局(NASA)等机构提供可公开获取的数字高程模型(DEM)数据,涵盖地球上的大部分地区。使用最广泛的数据集之一是 SRTM(航天飞机雷达地形图任务),它提供的全球高程数据水平分辨率约为 30 米。在某些地区,还有分辨率更高的数据集,精度可达 1 米或更高。

World Creator Real-World Data provided by MapTiler

当项目需要精确的地理环境时,例如为模拟、可视化或大型开放世界游戏再现真实地点时,真实世界的地形数据就显得极为宝贵。

World Creator 等工具可直接导入和流式传输 DEM 数据(如 地图跟踪器),并允许艺术家使用程序过滤器、侵蚀系统和地形塑造工具对其进行进一步处理。这样,现实世界中的地貌就可以得到增强、风格化或优化,以用于游戏制作流水线。

然而,真实世界的高程数据也面临着一些挑战。数据集通常会有噪声、包含缺失补丁或扫描伪影。此外,真实地貌通常比大多数游戏的实际大小要大得多,这意味着在生产环境中使用之前,必须对其进行重新缩放、裁剪、过滤或风格化处理。

因此,DEM 数据很少被原封不动地使用。相反,它通常作为基础图层,由艺术家使用程序工具和手动编辑进行完善和增强。

手工雕刻的地形

虽然程序生成和真实世界数据集提供了强大的起点,但手工雕刻仍然是创建地形最直接、最具艺术表现力的方法之一。

在这种方法中,地形艺术家使用数字雕刻工具手动塑造地形,就像传统雕刻家使用粘土一样。艺术家不是纯粹依靠算法来逼近自然形态,而是有意识地设计地形特征,以支持构图、讲故事和游戏要求。

Game engines such as Unreal Engine and Unity include built-in terrain sculpting tools that allow artists to modify landscapes directly within the engine. This workflow is especially useful because it enables a tight feedback loop between art direction and gameplay design. Artists can sculpt terrain features and immediately test how they affect player navigation, visibility, and level flow.

World Creator Hand-Sculpted Terrain

World Creator 等软件提供了一种混合方法,将程序生成与交互式地形编辑融为一体。艺术家可以使用笔刷和滤镜手动塑造地形,同时还能受益于实时侵蚀模拟、程序屏蔽和高级地形塑造工具。这样,艺术家既能保持创造性的控制,又能利用程序化地形生成的速度和真实感。

对于极其精细的地形特征,如英雄岩层、悬崖或洞穴入口,艺术家通常会求助于 ZBrush 或 Mudbox. 等高分辨率雕刻工具。这些资产的雕刻细节非常高,烘焙成法线贴图,并作为静态网格输出。然后将它们放置在由高度贴图生成的基础地形之上。

在现代地形管道中,很少有项目只依赖其中一种技术。相反, professional 工作流程结合了程序生成、真实世界数据和手工雕刻,以达到最佳效果。

World Creator 等工具专门用于在单一环境中整合这些工作流程。通过将程序化地形生成、侵蚀模拟、实时编辑和游戏引擎的无缝导出管道结合起来,它们可以让艺术家高效地构建大型、细致的景观,同时还能保持完全的艺术控制。

地形拓扑和网格生成

World Creator Terrain Topology

高度图本身只是存储为图像数据的高程值集合。就其本身而言,它并不代表可见的景观。只有在游戏引擎或数字内容创建(DCC)工具解释这些数据并将其转换为实际几何图形后,地形才会变成三维环境。

为此,引擎会构建一个网格,并根据高度图中存储的高度值垂直移动网格顶点。网格的结构方式--拓扑结构--对性能、灵活性和可表示的地形特征种类有重大影响。随着时间的推移,出现了几种常见的地形拓扑方法,每种方法都旨在解决不同的问题。

了解这些结构非常重要,因为它们会影响地形在实时引擎中的表现、渲染效率以及可创建的景观类型。

常规网格(四边形网格)

现代游戏引擎中最常用的方法是规则网格,通常以四边形网格的形式实现。在这种结构中,高度图中的每个像素都直接对应地形网格中的一个顶点。然后将这些顶点与相邻的顶点连接起来,形成统一的四边形或三角形网格。

这种方法具有极高的可预测性,而且易于管理。由于网格结构直接反映了高度图的分辨率,因此可以直接应用细节级别(LOD)系统、流媒体和地形分块。它还能清晰地映射到纹理坐标和地形层,因此非常适合实时渲染。

World Creator Quad Mesh Sample

Game engines such as Unreal Engine (Landscape system) and Unity (Terrain system) both rely heavily on this grid-based structure. Tools like World Creator are designed around the same concept, generating high-resolution heightmaps that integrate seamlessly with these engine terrain systems.

规则网格的主要缺点是在整个地形上平均分配几何图形。这意味着平坦的平原和复杂的山脉使用的三角形一样多,尽管平坦区域所需的几何细节要少得多。例如,一个 1024×1024 的网格已经包含了 100 多万个四边形,在处理超大型地形时就会变得非常昂贵。

尽管效率不高,但网格地形的简单性和可靠性使其成为大多数实时应用的主流解决方案。

三角形不规则网络 (TIN)

三角形不规则网络(TIN)是一种更具适应性的地形表示方法。TIN 不使用统一的网格,而是对地形表面进行分析,并根据地形的复杂程度动态分配三角形。

平坦的区域会得到较少的三角形,而有陡坡、尖锐山脊或复杂曲率的区域则会得到更详细的三角形。这样得到的网格能更有效地反映地形的实际形状。

从纯粹的几何角度来看,这种方法的效率明显高于均匀网格,因为它只将细节集中在需要的地方。

World Creator TIN Sample Mesh

然而,在实时环境中生成、更新和管理 TIN 网格要复杂得多。它们无法清晰地映射到纹理层,LOD 系统更难实现,动态地形编辑也变得更加困难。

由于这些原因,基于 TIN 的地形很少用于现代实时游戏引擎。相反,它更多地出现在 GIS(地理信息系统)、地形分析软件和某些电影预可视化管道中,在这些地方,渲染效率受实时性要求的限制较少。

有趣的是, World Creator, BiteTheBytes 的开发人员很早就开始尝试这一概念。早在 2006 年,他们就开发了一种名为 CLODDY 的新地形算法,实现了基于 TIN 的地形系统的高度优化形式。其目的是提供一种更高效的地形表示法,可根据地形复杂程度动态调整网格密度。

体素地形

基于体素的地形是一种完全不同的地形表示方法。体素系统不是将地形存储为二维高程图,而是将世界表示为由体积单元组成的三维网格,其中每个体素描述空间中某个位置是实心还是空心。这使得体素地形与高程图地形有着本质区别,后者只能为每个水平坐标存储一个高程值。

正因为如此,体素系统可以表现高度贴图无法表现的特征,例如洞穴、隧道、悬臂、浮岛和完全可破坏的环境。

World Creator Voxel Terrain Sample

体素地形通常与《我的世界》(Minecraft)等游戏联系在一起,但更先进的实现方式则出现在《无人天空》(No Man's Sky)、《七日死亡》(7 Days to Die)和各种程序沙盒游戏中。

然而,体素地形也面临着巨大的技术挑战。在渲染之前,体素数据本身必须转换成可见的网格。这一过程通常使用行进立方体或双等高线等算法,对体素网格进行分析,生成近似底层体积的多边形表面。

这一转换步骤的计算成本很高,尤其是对于大型世界或高度精细的地形而言。与基于高度图的地形系统相比,体素地形的纹理制作也更为复杂。因此,体素地形通常只有在其独特功能(如可破坏性或地下探索)对项目至关重要时才会使用。

地形纹理

World Creator Texturing

地形纹理制作是实时图形技术中最有趣的挑战之一。与道具或角色不同,地形通常覆盖非常大的区域,有时甚至横跨数平方公里。由于这种规模,传统的 UV 展开和手绘技术很少实用。单个地形网格可能包含数百万个顶点,远远超出了单个纹理贴图在高分辨率下的合理覆盖范围。

取而代之的是,地形纹理系统依靠分层材质、程序化混合和流技术来创建视觉效果丰富的表面,同时保持内存使用量可控。现代地形工具(包括 World Creator)设计用于程序化地生成这些层和遮罩,使艺术家能够高效地为广阔的地形绘制纹理,同时保持自然的变化。在实时地形纹理制作管道中,有几种常用的方法。

基于图层的混合(拼接图)

游戏引擎中最广泛使用的技术是基于图层的材质混合,通常通过拼接贴图来实现。溅射贴图是一种纹理,通常以 RGBA 格式存储,其中每个通道代表特定地形材质的混合权重。例如

World Creator Splat Maps

在地形上的任何一点,引擎都会从拼接图中读取数值,并将相应的材质混合在一起。这样,地形表面就能在不同材质之间平滑过渡,而不是突然切换。材质层本身通常由在地形表面重复出现的小平铺纹理组成。这使得它们非常节省内存,因为单个纹理就能覆盖大片区域。

不过,平铺也会带来自己的问题:可见的重复图案。当相同的纹理重复出现的频率过高时,地形就会显得矫揉造作,尤其是在中距离观看时。为了缓解这一问题,现代地形着色器通常会使用各种技术来打破重复并引入视觉变化:

随机平铺

随机纹理采样,减少可见的重复图案。

World Creator Stochastic Tiling Comparison

宏观变化纹理

在整个地形上应用大尺度的色彩变化,以打破统一的表面。

World Creator Macro Variations

多尺度的详细法线

结合精细和粗糙法线贴图,保持近距离和远距离的细节。

World Creator Detail Normals at Multiple Scales

基于高度的混合和位移

利用纹理内部的高度信息,使材料之间的过渡更加自然,如岩石之间的裂缝中积聚的污垢。

World Creator Displacement Mapping

程序纹理

许多现代地形管道都依赖程序纹理,而不是手动绘制拼接图。在这种方法中,材质混合是利用从地形本身获得的数据自动生成的。例如

倾斜角度

确定岩石出现在陡峭悬崖上的位置。

World Creator Procedural Slope

海拔高度

确定山峰的雪线。

World Creator Procedural Altitude

曲率或侵蚀数据

控制缝隙或山谷中的污垢堆积。

World Creator Procedural Erosion

流程图

影响河床沉积物的分布。

World Creator Procedural Flow

程序纹理对于大型世界来说扩展性非常好,因为只要高度贴图发生变化,地形就会自动更新。 World Creator 等工具就是围绕这一概念开发的。美工人员无需手动绘制溅射贴图,而是定义规则和遮罩来控制材质出现的位置。由于这些规则是程序性的,因此可以随时修改地形,并即时更新材质分布。这种工作流程大大加快了地形制作的速度,并确保在大型环境中材料放置的一致性。

巨型纹理和虚拟纹理

对于需要最高视觉保真度的项目,另一种方法是使用覆盖整个地形表面的独特烘焙纹理。这种技术完全避免了平铺,因为地形上的每个位置都有自己独特的纹理数据。在历史上,这种方法被称为 MegaTexturing,最早由 id Software 的 id Tech 引擎推广。现代引擎通过虚拟纹理(VT)系统实现了类似的概念。

World Creator Mega Textures

Virtual texturing allows extremely large textures—sometimes tens or even hundreds of thousands of pixels across—to be streamed dynamically. Instead of loading the entire texture into GPU memory, the engine loads only the visible tiles required for the current camera view. Engines such as Unreal Engine support Runtime Virtual Textures (RVT) and other streaming systems that make it possible to use very high-resolution terrain textures without exceeding memory limits.

这样做的代价是管道变得更加复杂。美工人员必须生成并维护极其庞大的纹理数据集,而且必须以足够的分辨率烘焙地形,以保持整个景观的细节。因此,许多现代工作流程都将程序图层混合与虚拟纹理制作相结合,让美工人员既能保持分层材质的灵活性,又能从高分辨率的表面细节中获益。

在实践中,地形纹理很少由单一技术单独处理。取而代之的是,现代流水线将程序遮罩、分层材质、随机变化和虚拟纹理系统结合在一起,创造出可信的地貌,无论是在近距离还是在广阔的开放世界中都能保持原貌。 World Creator 等工具通过自动生成地形遮罩、生物群落分布和纹理层来帮助简化这一过程,让美工人员能够专注于塑造和完善整体环境,而不是手动绘制每平方米的地形。

地表数据层

高度图定义了地形的形状,但它本身只是一个起点。现代地形系统会生成并存储各种额外的表面数据层,这些数据层会描述地形的行为方式以及渲染时的外观。

World Creator Surface Data Layers

这些辅助数据集非常重要,因为它们可以让着色器、植被系统、物理和游戏逻辑对地形表面做出智能反应。在很多情况下,这些辅助数据是通过数学分析或模拟从高度图中自动导出的。

World Creator 等工具会在创建地形时自动生成许多此类图层。由于地形是程序化构建的,因此可以实时计算斜坡、曲率、流图和遮罩等附加数据,并立即用于贴图、散射物体和定义生物群落分布。一些最重要的地形数据层包括以下内容:

法线地图

法线图对地形表面每一点的方向进行编码。法线贴图存储的不是高度值,而是描述地表相对于入射光线的朝向的方向向量。

通过对相邻像素进行采样并计算它们之间的斜率,可以直接从高度图中导出法线图。这一过程通常称为有限差分采样,它可以接近表面梯度,并将其转换为适合照明计算的法线矢量。

World Creator Normal Map

良好的法线数据对令人信服的照明效果至关重要,因为它可以让着色系统模拟微小的表面变化,即使底层网格相对简单:

  • 小石头和卵石
  • 裂开的泥土
  • 岩屑和裂缝
  • 沙纹或土壤图案

如果直接在地形网格中建模,这些细节将需要数百万个额外的三角形。取而代之的是,法线贴图可以在着色层面模拟这些微观几何体,以最小的性能代价提供更高的视觉保真度。

斜坡地图

另一个重要的衍生地形信息是坡度图,它可以测量每个点的地形表面陡峭程度。

World Creator Slope Map

从数学上讲,斜率只是高度图的梯度,但它在许多不同的系统中都非常有用。坡度图通常用于

  • 材料混合--悬崖采用岩石纹理,而较平坦的区域则采用草地或土壤纹理
  • 游戏逻辑 - 角色可能无法在非常陡峭的地面上行走
  • 物理和视觉特效--水、碎石和颗粒会自然向下移动
  • 植被位置--树木和植物往往生长在相对平坦的地面上

程序化地形工具(如 World Creator )在很大程度上依赖于斜坡数据来驱动自动纹理和生物群落放置。例如,一个典型的规则可能会将岩石材料放置在某一角度以上的斜坡上,而植被层只出现在较平坦的区域。

由于这些规则是程序性的,因此每当景观被修改时,整个地形都会立即更新。

流程图

水流图表示水在地形表面自然流动的方向。

这些地图通常来自侵蚀模拟或地形梯度分析。每个像素存储一个方向向量,描述水流下坡的路径。

World Creator Flow Map

流图在渲染和环境设计中都非常有用。它们可用于

  • 推动河流和溪流中的水动画
  • 放置泥浆或潮湿土壤等潮湿材料
  • 引导山谷和盆地的沉积物积累
  • 放置环境道具,如碎石、浮木或河石

在地形生成工具(如 World Creator, )中,通常会自动生成水流图,作为侵蚀模拟过程的一部分。由于侵蚀系统已经模拟了水在地形中的运动,因此可以重新使用生成的水流数据来控制材料的放置和环境故事的创作。

这有助于确保河流、沉积物和环境细节出现的位置真实可信。

曲率图

曲率图描述了某一点的地形表面是凸面、凹面还是平面。

World Creator Curvature Map

这些信息对于模拟自然材料堆积特别有用。在真实环境中

  • 泥土和沉积物聚集在山谷和裂缝等凹陷区域
  • 岩石往往暴露在山脊和山峰等凸面上

曲率贴图允许着色器和程序系统自动模仿这些过程。例如,基于曲率的规则可能会在岩石地形的裂缝中添加泥土,或在凹陷的表面长出苔藓。

World Creator 在内部生成曲率信息,并通过分配系统将其公开,从而使艺术家能够创建高度可信的地形材料过渡。

环境闭塞贴图

环境光遮蔽 (AO) 是指环境光到达地形表面特定点的近似程度。被附近的几何体包围或环绕的区域接收到的光线较少,因此看起来略暗。

World Creator Ao Map

对于地形,AO 通常是根据地形形状预先计算和烘焙的。这种阴影信息会使裂缝、山谷和斜坡底部的颜色变暗,从而在视觉上使物体接地,并增加景观的深度。

这种效果很微妙,但对逼真度极为重要。如果没有它,地形有时会显得扁平或过于均匀。由于 AO 是提前制作的,因此几乎不会增加运行时间成本,同时还能显著改善视觉丰富度。

侵蚀和沉积地图

在侵蚀模拟过程中,通常会生成额外的数据层,描述物质如何在地形上移动。

World Creator Sediment Map

其中包括

  • 沉积物地图显示物质堆积的位置
  • 显示颗粒沉降位置的沉降图
  • 显示强烈侵蚀区域的磨损地图

这些数据集对于推动材料混合非常有用,因为它们能自然显示出土壤、砾石或裸露岩石应该出现的位置。

World Creator 的侵蚀系统可在内部生成此类数据,并允许艺术家直接将其用于程序纹理绘制和对象放置。

这些附加的地形数据层--标准层、坡度层、曲率层、流动图、侵蚀遮罩层和环境遮挡层--共同提供了重要的信息,远远超出了简单的海拔高度。它们使地形系统能够模拟自然过程、驱动程序纹理、指导植被布置,并创造出物理上连贯、视觉上令人信服的环境。

World Creator 等现代地形工具可自动利用这些数据集,为艺术家提供强大的环境程序控制,同时保持快速高效的地形创建工作流程。

在地形上放置物体

光秃秃的地形网格只是景观的基础。虽然高程图定义了山脉、山谷和平原,但在布满岩石、树木、草地、灌木、碎石、建筑物和无数其他环境资产之前,环境仍会给人一种空洞的感觉。这些元素提供了规模、故事性和生态背景,将一个简单的地形表面转变为一个可信的世界。

World Creator placing objects on terrain

然而,手动放置物体很快就会变得不切实际。一平方公里的茂密森林就需要数以万计的树木,更不用说草丛、岩石、倒下的树枝和其他地面杂物了。手工放置每个物体既费时,又很难在地形发生变化时进行维护。

因此,现代地形管道在很大程度上依赖于由规则、地形数据和环境逻辑驱动的程序散射系统。 World Creator 等工具将这些系统直接集成到地形生成工作流程中,使艺术家能够自动填充整个景观,同时仍保持艺术控制。

叶面和散射系统

Most modern game engines provide built-in tools for placing large numbers of environmental assets efficiently. For example, the Unreal Engine includes Foliage Mode and the Procedural Foliage Tool and Unity offers its Terrain Detail and Tree systems.

这些工具允许艺术家使用画笔在地形表面绘制网格实例。在绘制过程中,比例变化、旋转、密度和随机性等参数可在预定义范围内进行控制。在引擎盖下,这些系统依赖于 GPU 的实例化功能,它允许使用最少的绘制调用次数,高效地渲染数千甚至数十万个相同的网格。如果没有实例化功能,渲染密集植被或地面杂波很快就会变得过于昂贵,无法进行实时渲染。

这种基于笔刷的工作流程对于英雄区域非常有效,例如美工人员希望精确控制构图的玩家附近区域。然而,在处理大型开放世界环境时,手动绘制资产仍然变得不切实际。在这种情况下,就需要使用程序规则。

基于规则的散射

World Creator Rule Based Scattering

这就是前面讨论过的地形数据层--如高度、坡度、曲率、侵蚀掩膜和流图--极具价值的地方。基于规则的散布系统可以分析这些地形属性,并自动确定某些对象应该出现的位置。例如,一个典型的程序化放置系统可能会使用以下规则:

在坡度小于 20 度且海拔小于 400 米的地方种植橡树

World Creator Crafting

在坡度小于 30 度、海拔 400-800 米的地方种植松树

World Creator Crafting

在坡度大于 35 度的地方放置石块

World Creator Crafting

在朝北的地面上放置苔藓

World Creator Crafting

World Creator 包含一个功能强大的基于分布的程序化对象放置系统,允许美工人员精确定义此类规则。由于这些分布可以结合多个地形遮罩和参数,因此艺术家可以模仿自然生态系统的方式,用植被、岩石或其他资产快速填充景观。由于这些规则是程序性的,因此每当地形发生变化时,对象的位置都会自动更新。

碰撞和表面捕捉

World Creator Collision and Surface Snapping

放置在地形上的物体必须与地形表面正确对齐。虽然这听起来简单明了,但有几个微妙的问题需要正确处理:

原产地安置

每个 3D 资产都有一个支点,它决定了资产相对于地形的位置。如果支点位于对象的底部,那么放置就很简单,因为对象会自然地位于地形表面上。但是,许多资产的支点位于网格的中心,这就需要一个垂直偏移,以确保物体正确位于地面上。

World Creator Origin Placement

正常对齐

地形表面很少是完全平坦的。当物体被放置在斜坡上时,系统必须决定物体应如何与地形法线对齐。

  • 小型植物和碎石通常与地形坡度完全一致,看起来效果最佳
  • 岩石和原木通常会随着地形表面自然倾斜
  • 不过,高大的树木通常会保持大部分直立,因为严重倾斜在斜坡上的树木看起来很不自然
World Creator Normal Alignment

沉浮

在不平整的地形上,物体可能会略微浮于地表或部分埋于地下。程序散射系统中常用的一种技巧是应用一个小的随机垂直偏移,使物体稍微沉入地下。这可以隐藏细微的网格交叉,通常比完全干净的放置看起来更自然。

World Creator Sinking and Floating

散落物体的详细程度

World Creator Level of Detail

在所有距离上都使用全分辨率网格来渲染茂密的森林是不可能有效渲染的。因此,分散的物体在很大程度上依赖于细节级别(LOD)系统:

网格 LOD

当物体离摄像机越来越远时,它们会自动切换到网格的低多边形版本。这大大降低了渲染成本,同时保持了远距离的视觉质量。

Unity Mesh LODs

冒牌广告牌

在距离很远的情况下,即使是简化的网格也会变得昂贵。在这种情况下,树木和其他大型物体通常会被广告牌冒名顶替。它们通常是

  • 两个交叉的四边形
  • 或面向摄像头的精灵

现代仿真系统可以从多个角度观察原始 3D 模型,使其能够随着摄像机的移动而旋转,令人信服。

Billboard

距离剔除

对于草地或碎石等小物体,最有效的解决方案就是在一定距离之外将其完全移除。由于地面上的小杂物对远处的视觉效果影响不大,因此可以安全地将其消失,而不会影响场景的感知质量。

Modern engines use structures such as Hierarchical Instanced Static Meshes (HISM) in Unreal Engine or similar GPU-driven culling systems to manage instance visibility efficiently.

World Creator Distance Culling

地面覆盖和表面混合

World Creator Ground Cover

环境逼真度最微妙而又最重要的一个方面是放置的物体与其下方地形表面之间的过渡。一块简单地放在地面上的石头往往看起来很假。在现实中,物体通过侵蚀、土壤堆积和植被生长与周围地形相互作用。有几种常用的技术可以改善这种过渡效果:

地形顶点混合

地形着色器可以混合物体底部周围的材质,使物体下方的地面变暗或变脏。例如,大块岩石下的区域可能会显示较暗的土壤或受干扰的地面,使物体感觉嵌入了环境中。

地形位移

在某些高端流水线中,地形网格会使用细分或位移技术使物体基座周围产生轻微变形。这可以在岩石或树根周围的土壤聚集处产生微妙的堆积效果。

不过,这种技术的计算成本较高,通常只用于英雄场景或电影镜头。

贴花和网状贴花

放置在物体周围的小贴花纹理可以模拟物体:

  • 泥浆飞溅
  • 落叶
  • 根群
  • 污垢堆积

这些细节打破了道具和地形之间的硬性界限。

流媒体和运行时人口

大型开放世界环境带来了另一个挑战:并非所有分散的对象都能同时加载到内存中。为了解决这个问题,引擎将世界划分为空间单元或流式区域。当玩家在环境中移动时,引擎会根据距离动态加载和卸载对象。

只有玩家周围一定半径内的单元格才会保持填充状态。为了节省内存和渲染资源,超出该半径范围的物体将被卸载。为了隐藏已加载区域和未加载区域之间的过渡,游戏采用了以下技术:

  • 雾与大气透视
  • 渐进式 LOD 过渡
  • 基于距离的衰减

有些程序系统甚至更进一步,在运行时根据放置规则重新生成分散的对象,而不是显式地存储它们。这样做可以避免大型实例数据集,但在加载新的地形区域时需要额外的生成时间。

World Creator 等工具将地形生成、材质分布和程序对象散射整合到一个环境中,有助于简化整个过程。艺术家可以使用坡度、高度、曲率和侵蚀掩膜等地形数据来定义放置规则,从而让广阔的地形自动填充植被、岩石和环境细节。

这种程序化方法大大减少了人工操作,同时确保生成的环境感觉自然、连贯、可扩展,即使在非常大的地形上也是如此。

实用技巧

World Creator Practical Tips

大处着眼,小处着手

首先要勾勒出广阔的地块和主要的地标特征。虽然立即开始雕刻有趣的悬崖峭壁很有诱惑力,但如果整体构图不理想,就必须重做。先确定主要结构,再进行细化。

学习真正的地质学

某些地貌模式是人造地形的明显标志,例如完全径向对称的山脉、高度相同的山脊以及没有源头的河谷。花点时间研究卫星图像--谷歌地球是一个非凡的免费资源--观察水是如何塑造陆地的。即使是在幻想环境中,以地质原理为基础的地形也会让你的作品看起来更加真实。

注意特克塞尔犬的密度

一个常见的错误是使用大尺寸的高度贴图来覆盖一个非常大的区域,然后当纹理细节在近处看起来很模糊时就会大吃一惊。一个覆盖 16 千米 x 16 千米的 4096x4096 高度贴图可以每隔约 4 米提供一个样本,这对于整体地形形状来说是没有问题的。但是,材质平铺和细节法线必须提供所有近景细节。在投入之前,请仔细规划您的比例尺。

积极使用面具

使用遮罩来覆盖侵蚀区、平坦区、山脊线、碎石坡和积水区。这些遮罩有多种用途:影响树叶位置、资产散射、天气效果和游戏系统。在丰富的地形数据层上投资,在任何地方都能获得回报。