版本:Unity 6 (6000.0)
语言:English
地形图章
笔刷

地形图层

切换到脚本

**地形图层**是一个资源,用于定义地形场景中的景观。地形游戏对象会在场景中添加一个大的平面,您可以使用地形检查器窗口创建详细的景观。更多信息
参见术语表
的表面特性。地形图层包含纹理渲染游戏对象、精灵或 UI 元素时使用的图像。纹理通常应用于网格的表面,以使其具有视觉细节。更多信息
参见术语表
和其他地形材质用于渲染地形表面的属性。因为地形图层是资源,所以您可以在多个地形块上重复使用它们。

您可以将纹理添加到地形的表面以创建颜色和精细细节。地形游戏对象Unity 场景中的基本对象,可以表示角色、道具、场景、摄像机、路径点等。游戏对象的特性由附加在其上的组件定义。更多信息
参见术语表
通常很大,因此最好使用具有在表面上平铺并无缝重复的纹理的基本地形图层。您可以使用多个地形图层,每个图层使用不同的纹理,以构建有趣、多样的地形表面。

您应用到地形的第一个地形图层会自动成为基础图层,并扩展到整个景观。您可以使用其他地形图层绘制区域,以模拟不同的地面表面,例如草地、沙漠或雪地。要创建从草地乡村到沙滩的渐变过渡,您可以选择应用具有可变不透明度的纹理。

Terrain with sandy texture
带有沙质纹理的地形

创建地形图层

要在地形检查器一个 Unity 窗口,显示有关当前选定的游戏对象、资源或项目设置的信息,允许您检查和编辑值。更多信息
参见术语表
中直接创建地形图层,请点击地形检查器顶部的工具栏Unity 编辑器顶部的按钮和基本控件行,允许您以各种方式与编辑器交互(例如缩放、平移)。更多信息
参见术语表
中的画笔图标,然后从下拉菜单中选择**绘制纹理**。在**地形图层**部分的底部,点击**编辑地形图层**按钮,然后选择**创建图层**。

Create Layer in the Terrain Inspector
在地形检查器中创建图层

要从覆盖层编辑地形图层

  1. 在**地形工具**覆盖层中,选择**材质模式** 材质模式菜单按钮。材质模式工具显示在**地形工具**覆盖层的末尾。
  2. 从**地形工具**覆盖层上的可用材质模式工具中,选择**绘制纹理** 绘制纹理
  3. 在**工具设置**覆盖层中,选择**编辑地形图层**。
Create Layer in Overlays
在覆盖层中创建图层

当您选择**创建图层**时,Unity 会打开**选择 Texture2D** 窗口。在这里,选择用作地形图层**漫反射**通道的图像。要将法线贴图一种凹凸贴图纹理,允许您向模型添加表面细节,例如凸起、凹槽和划痕,这些细节会像由真实几何体表示一样捕捉光线。
参见术语表
或**遮罩贴图**纹理分配到您的地形图层,请在项目视图中选择相应的地形图层,并使用其检查器窗口。

或者,要创建不自动与地形关联的地形图层资源,请右键单击项目窗口,然后从上下文菜单中选择**创建 > 地形图层**。然后,在检查器窗口中配置新地形图层的各种属性。

有关地形图层数量如何影响渲染性能的信息,请参阅渲染性能。即使是您实际上没有绘制到地形块上的已分配地形图层也可能会影响渲染性能。

添加地形图层

最初,地形没有分配任何地形图层。默认情况下,它使用棋盘格纹理,直到您添加地形图层。

在项目中创建地形图层后,点击**编辑地形图层**按钮并选择**添加图层**以打开**选择 TerrainLayer** 窗口。双击此窗口中的地形图层以将其添加到您的地形。

地形图层属性

根据地形设置中设置的材质和使用的渲染管线,您可能会在检查器中看到不同的选项和属性。

Terrain Layer settings in the Inspector
检查器中的地形图层设置
属性 描述
漫反射 漫反射纹理表示地形图层的基础颜色纹理。漫反射纹理的 Alpha 通道具有不同的用途,具体取决于用于渲染地形的活动可脚本化渲染管线和着色器。

例如,高清渲染管线 (HDRP) 和通用渲染管线 (URP) 使用 Alpha 通道表示光滑度。但是,如果地形图层上有遮罩贴图纹理,它会使用漫反射纹理的 Alpha 通道表示密度值。
颜色色调 如果您分配了漫反射纹理,则地形图层设置中会出现一个名为**颜色色调**的新字段。点击颜色拾取器字段并选择要使用的颜色。

**颜色色调**是 HDRP 和 URP 中提供的功能。
不透明度作为密度 指定是否使用存储在 Terrain Layer 的漫反射纹理的 Alpha 通道中的值来渲染 Terrain Layer,而不是使用通常的 Splatmap 权重或来自 Mask Map 的高度值。Unity 使用 Alpha 通道值作为图层混合的阈值。

**不透明度作为密度**是 HDRP 和 URP 中提供的功能。当您在 Terrain 的 Terrain Lit 材质上禁用**启用基于高度的混合**选项,以及将漫反射和遮罩贴图纹理分配到 Terrain Layer 时,此选项将在每个 Terrain Layer 上可用。
法线贴图 法线贴图纹理包含地形图层的法线信息。Unity 在光照计算中使用此信息。

• 如果您未分配法线贴图纹理并在地形设置中启用实例化,则地形将使用从地形高度图生成的法线。

• 如果您分配了法线贴图纹理并启用了实例化,则 Unity 将使用法线贴图纹理而不是从高度图生成的法线。

• 如果您在 Terrain 上禁用了实例化,则内置 Terrain 材质将使用从 Terrain 几何体生成的法线,即使您在 Terrain Layer 上分配了法线贴图纹理。
法线缩放 如果您分配了法线贴图纹理,则地形图层设置中会出现一个名为**法线缩放**的新字段。此值充当法线贴图中存在的法线值的缩放因子。值为 0 表示法线贴图中存储的法线的缩放比例为 0,而值为 1 表示法线处于完全缩放或影响状态。

不同法线缩放值的示例和结果
法线缩放 = 0 • 将解包的法线值乘以 0。
• 法线强度,因此长度,将为 0,并且对光照计算没有影响。地形上的网格三角形有效地使用网格法线进行光照计算。
法线缩放 = 1 • 将解包的法线值乘以 1。
• 法线的强度将为 100%。
法线缩放 = 2 • 将解包的法线值乘以 2。
• 法线的强度将为 200%,并且看起来比法线缩放比例为 1 的法线明显两倍。
**法线缩放** = –1 • 将解包的法线值乘以 –1。
• 法线的强度将为 100%,但取反,使法线指向与法线缩放比例为 1 的法线相反的方向。
遮罩贴图 TerrainLit 着色器(它是高清渲染管线 (HDRP) 和通用渲染管线 (URP) 的一部分)使用此遮罩贴图纹理数据。自定义地形着色器也可能出于用户定义的目的使用此纹理,例如环境光遮蔽或基于高度的混合。

对于 HDRP 和 URP TerrainLit 着色器,遮罩贴图纹理的 RGBA 通道分别对应于
R 金属度
G 环境光遮蔽
B 高度
A 光滑度(漫反射 Alpha 变成密度)
通道重新映射 如果您分配了遮罩贴图纹理,则地形图层设置中会出现一个名为**通道重新映射**的新标题。点击该标题旁边的三角形以显示最小和最大 RGBA 值的字段。Unity 使用这些范围来重新映射遮罩贴图纹理每个通道中的值。
镜面反射 地形图层的镜面反射高光颜色。
金属度 地形图层的整体金属度值。
光滑度 地形图层的整体光滑度值。
平铺设置 应用于地形图层使用的所有纹理的平铺设置。
大小 纹理在地形空间中的大小,以及纹理平铺的频率。
偏移 Unity 应用于地形图层中每个纹理的采样位置的基本偏移。

纹理绘制

Unity 将您添加到整个景观中的第一个地形图层应用于整个景观。如果您添加了多个地形图层,请使用绘制纹理工具将后续纹理应用到您的地形。

如果您添加了一个没有任何地形图层的新地形块并在其上进行绘制,则系统会自动将所选地形图层添加到该新地形块。因为这是第一个地形图层,所以该纹理成为基础图层,并填充整个地形块。

在地形检查器中的**笔刷**下,有一个框显示可用的笔刷,以及下方的**笔刷大小**和**不透明度**选项。有关这些工具的更多信息,请参阅创建和编辑地形

渲染性能

您分配给地形块的地形图层数量可能会影响渲染器的性能。建议使用的最大地形图层数量取决于项目使用的渲染管线一系列操作,这些操作获取场景的内容并在屏幕上显示它们。Unity 允许您选择预构建的渲染管线,或编写您自己的渲染管线。更多信息
参见术语表

  • 如果您的项目使用通用渲染管线 (URP)内置渲染管线,则每个纹理传递可以使用四个地形图层,并且传递数量没有限制。这意味着虽然您可以使用任意数量的地形图层,但每个传递都会增加渲染地形所花费的时间。为了获得最佳性能,请将每个地形块限制为四个地形图层。

  • 如果您的项目使用高清渲染管线 (HDRP),则每个地形块最多可以添加八个地形图层,并且系统会在一趟传递中渲染它们。无法进行其他传递。如果添加超过八个地形图层,它们会显示在 Unity 编辑器中,但在运行时会被忽略。


  • 2021年1月27日 页面修订

  • 更新了关于颜色色调和不透明度作为密度属性的信息

地形图层

地形图章
笔刷