Version: 6000.3
语言: 中文
绘制纹理(Paint Texture)

地形图层

切换到脚本

地形层是一个资产,它定义了地形场景中的地形。地形游戏对象会向场景添加一个大型平面,您可以使用地形的检查器窗口创建详细的景观。更多信息
请参阅术语表
的表面质量。地形图层纹理渲染游戏对象、精灵或 UI 元素时使用的图像。纹理通常应用于网格表面,以赋予其视觉细节。更多信息
请参阅术语表
以及地形材质用于渲染地形表面的其他属性。由于地形层是资产,因此您可以在多个地形图块上重复使用它们。

你可以将纹理添加到地形表面,以创建着色和精细细节。地形游戏对象Unity 场景中的基本对象,可以表示角色、道具、风景、相机、航路点等。游戏对象的功能由附加到它的组件定义。更多信息
请参阅术语表
通常很大,因此最好使用基础地形层,其纹理会平铺在表面上并无缝重复。你可以使用多个地形层(每个地形层都有不同的纹理)来构建有趣的、多样的地形表面。

应用于地形的第一个地形层会自动成为基础层并分布在整个地形上。你可以使用其他地形层绘制区域,以模拟不同的地面表面,例如草地、沙漠或雪地。要在长满青草的乡村和沙滩之间创建渐进过渡,你可以选择应用具有可变不透明度的纹理。

沙质地形
沙质地形

创建地形图层

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

在地形检查器中创建层
在地形检查器中创建层

要从叠加层编辑地形图层:

  1. 地形工具(Terrain Tools) 叠加层中,选择 材质模式(Materials Mode) 材质模式菜单按钮。材质模式工具显示在地形工具叠加层的末尾。
  2. 地形工具(Terrain Tools) 叠加层上的可用材质模式工具中,选择 绘制纹理(Paint Texture绘制纹理(Paint Texture)
  3. 工具设置(Tool Settings) 叠加层中,选择 编辑地形图层(Edit Terrain Layers)。
在叠加层中创建图层
在叠加层中创建图层

选择 Create Layer 时,Unity 会打开 Select Texture2D 窗口。在这里,选择要用作地形图层的漫反射通道的图像。要分配一个法线贴图(Normal Map一种凹凸贴图纹理,可用于向模型添加表面细节,如凹凸、凹槽和划痕,这些细节可以捕捉光线,就好像它们由真实几何体表示一样。
请参阅术语表
遮罩贴图纹理(Mask Map Texture) 到地形层,在项目视图中选择相应的地形层,然后使用其检查器窗口。

或者,要创建未自动与地形关联的地形层资产,请右键点击 项目(Project) 窗口,然后从上下文菜单中选择 创建>地形层(Create Terrain Layer)。然后,在 检查器(Inspector) 窗口中为新的地形层配置各种属性。

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

添加地形图层

最初,地形没有分配给其地形层。默认情况下,它使用棋盘纹理,直到你添加地形层。

在项目中创建地形图层后,点击 编辑地形图层(Edit Terrain Layers) 按钮,然后选择 添加图层(Add Layer) 以打开 选择地形图层(Select TerrainLayer) 窗口。双击此窗口中的地形层,将其添加到地形中。

地形图层属性

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

检查器中的地形层设置
检查器中的地形层设置

漫反射设置

漫反射纹理(Diffuse Texture) 表示地形层的基色纹理。漫反射纹理的Alpha通道有不同的用途,这取决于你用于渲染地形的活动可脚本渲染管线和着色器。
例如,高清渲染管线 (HDRP) 和通用渲染管线 (URP) 使用 Alpha 通道来
实现平滑度。但是,如果地形层上存在遮罩贴图纹理,则它会使用“密度的漫反射纹理”值的“Alpha”通道。

财产 描述
色调 如果分配漫反射纹理,则地形层设置中会出现一个名为 颜色色调(Color Tint) 的新字段。单击颜色选择器字段,然后选择要使用的颜色。

颜色色调是 HDRP 和 URP 中可用的一项功能。
不透明度作为密度 指定是否使用存储在地形层的漫反射纹理的 Alpha 通道中的值来渲染地形层,而不是通常的散画面图权重或遮罩贴图中的高度值。Unity 使用 Alpha 通道值作为图层混合的阈值。

不透明度作为密度是 HDRP 和 URP 中可用的一项功能。当你在地形的地形光照材质上禁用 启用基于高度的混合(Enable Height-based Blend) 选项,并将 漫反射(Diffuse) 和 遮罩贴图纹理(Mask Map Textures) 分配给地形层时,此选项将在每个地形层上可用。

法线贴图

法线贴图纹理包含地形层的法线信息。Unity 在光照计算中使用此信息。

  • 如果你不分配法线贴图纹理并在 地形设置(Terrain Settings) 中启用实例化,则地形将使用从地形生成的法线heightmap存储对象高度数据的灰度纹理。每个像素存储垂直于该像素所表示的面的高度差。
    请参阅术语表
    .
  • 如果您分配法线贴图纹理并启用实例化,Unity 将使用法线贴图纹理而不是从高度图生成的法线。
  • 如果在地形上禁用实例化,则内置地形材质将使用从地形几何体生成的法线,即使你在地形层上分配了法线贴图纹理也是如此。

正常比例设置

如果分配法线贴图纹理,则地形层设置中会出现一个名为 法线比例(Normal Scale) 的新字段。此值充当法线贴图中存在的法线值的缩放因子。值为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。

财产 描述
R 金属
G 环境光遮挡 一种近似环境光(不是来自特定方向的光)可以击中表面上某个点的量的方法。
请参阅术语表
B 高度
一个 平滑度(漫反射 Alpha 变为密度)
通道重新映射 如果分配遮罩贴图纹理,则地形层设置中会出现一个名为 通道重新映射(Channel Remapping) 的新标题。单击该标题旁边的三角形以显示最小和最大 RGBA 值的字段。Unity 使用这些范围重新映射蒙版贴图纹理每个通道中的值。

视觉设置

地形层的视觉属性。

财产 描述
镜面 地形层的镜面反射高光颜色。
金属 地形层的整体金属值。
平滑 地形层的整体平滑度值。

磁贴设置

应用于地形层使用的所有纹理的平铺设置。

财产 描述
大小 地形空间中纹理的大小,以及纹理平铺的频率。
抵消 Unity 应用于地形层中每个纹理的采样位置的基本偏移量。

纹理绘画

Unity 会将您添加的第一个地形图层应用于整个地形。如果添加多个地形层,请使用 绘制纹理(Paint Texture) 工具将后续纹理应用到地形。

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

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

渲染性能

分配给地形图块的地形图层数量可能会影响渲染器的性能。推荐的最大地形层数量取决于哪个渲染管线 获取场景内容并将其显示在屏幕上的一系列作。Unity 允许您从预构建的渲染管道中进行选择,或编写自己的渲染管道。更多信息
请参阅术语表
您的项目使用。

  • 如果你的项目使用通用渲染管线(URP)内置渲染管线,则每个纹理通道可以使用四个地形层,对通道数量没有限制。这意味着,尽管你可以根据需要使用任意数量的地形层,但每次通过都会增加渲染地形所花费的时间。为了获得最佳性能,请将每个地形图块限制为四个地形层。

  • 如果您的项目使用高清渲染管线 (HDRP),则每个地形图块最多可以添加 8 个地形层,系统会在一次通过中渲染它们。无法通过额外的通道。如果添加超过八个地形层,它们会显示在“检查器”窗口中,但不会在编辑器或运行时渲染。使用这些额外图层绘制的任何区域都显示为黑色。要使其他图层可见,请从地形图层列表中删除一个或多个现有图层。

绘制纹理(Paint Texture)