Language:
Page Info
Skill Level:
Engine Version:
Share

植物实例化网格体

Foliage Tool

通过植物实例化网格体系统可在地形Actor、其他静态网格体Actor和BSP几何体上轻松绘制或清除静态网格体的集。这些网格体将自动集组成批,使用硬件实例化进行渲染,意味着只需要一个单一绘制调用即可对诸多实例进行渲染。

如需了解植物工具的使用,请参见地形内容示例 内容范例的植物 部分。

植物编辑模式

使用植物工具后,点击 模式 面板中的植物按钮(Shift+4)。

FoliageMode.png

模式 面板中将出现“植物编辑模式”窗口。

FoliageWindowInitial.png

网格体列表

网格体列表中放置的静态网格体将用作植物。要将一个静态网格体添加到网格体列表,需要首先从 内容浏览器 将静态网格体拖入 将植物放置于此处

尝试添加正确的actor类型时只显示黄色的植物类型。如果未看到其显示,尝试添加的内容将无法使用。

为调整用作植物的静态网格体属性,则在网格体列表中选择“静态网格体”,然后按下植物工具右下角的 放大镜 图标。这将公开选中的静态网格体细节。

按下后出现的效果应与下图相似。

选择网格体列表中的植物网格体

将鼠标悬停在列表中的网格体上,然后勾选/取消勾选左上角的勾选框,即可启用网格体列表中的植物网格体。

Foliage_Selecting_Meshes.png

在网格体列表中点击植物网格体即可将其选中。此操作将使其橙色高亮显示,然后便能在下方的选项面板中调整诸多属性。

笔刷设置

Foliage_Brush_Settings.png

在网格体列表中(如上图所示),网格体编辑工具将显示当前选中植物工具相关的属性。 (并不会显示每个植物工具的每项设置。)

项目

描述

笔刷尺寸

笔刷的大小(以虚幻单位计)。

绘制密度

使用 鼠标左键 时添加实例的目标密度。

  • 这是一个范围在0到1之间的值。值为1时将以每个网格体“网格体”属性中列出的最大密度来绘制网格体实例(如下所示)。

  • 如笔刷中的网格体密度已大于此值,则不会添加网格体。

擦除密度

使用 Ctrl+Shift+点击 擦除实例时希望达到的目标密度。

  • 这是一个范围在0到1之间的值。0代表无网格体,1代表每个网格体“网格体”属性中列出的最大密度(如下所示)。如网格体的数量少于这个所需的擦除密度,则不会擦除更多网格体。

  • 此操作可用于使已绘制的网格体变薄,而无需完全移除所有实例。

含有名称 地形静态网格体BSP半透明 的勾选框决定着使用工具时植物网格体将被放置在哪种类型的Actor上。勾选框则说明应使用工具时植物网格体将被放置在这类Actor上。取消勾选框则说明植物网格体不会被放置在这类Actor上。

同时还支持平板电脑按压灵敏度。在考虑所有其他参数后,笔按压将调制出添加或移除的植物网格体数量。

植物工具

在植物窗口顶部的工具栏中通过正确按钮可选择5种工具。

项目

描述

Paint Tool

绘制工具 - 用于从场景添加和移除植物实例。

Reapply Tool

重应用工具 - 用于修改已在场景中绘制的实例的参数。

Select Tool

选择工具 - 用于选择单个实例,用于移动、删除等操作。

Paint Select Tool

套索工具 - 用于选择使用绘制笔刷的各类实例。

Fill Tool

填充工具 - 用于决定使用绘制工具放置的网格体数量。

绘制工具

Paint Tool

绘制工具是植物编辑模式的默认工具。可使用它在关卡中绘制网格体列表中的静态网格体实例。启用植物编辑模式时,将在关卡中绘制一个透明球体笔刷,说明植物笔刷将在何处进行操作。可在下图中查看植物绘制笔刷的外观。

Foliage_Paint_Tool_Gimzo.png

植物绘制也可在VR编辑器中使用。如需了解VR中的植物绘制功能按钮,请参见VR模式控制

将植物添加到笔刷区域的方法:

  • 长按 鼠标左键点击 希望添加植物之处。网格体列表中当前选中的所有网格体将根据其当前参数和设置进行添加。

绘制网格体时,引擎将在与查看方向平行的球体中执行一些线条追踪,意味着能在球体中看到的所有表面均会成为植物实例的潜在目标。

从笔刷区域擦除植物的方法:

  • 长按 Shift鼠标左键点击 希望移除植物之处。

绘制设置

网格体列表中的每个静态网格体都拥有数个属性,在绘制选中的静态网格体时控制实例的放置、缩放或旋转方式。在网格体列表中选择所需的静态网格体,然后再调整下方显示的属性,即可对属性进行访问。

以下是每个部分用途的高级描述:

属性

描述

网格体

在此处输入要使用的静态网格体类型。

绘制

可在此处调整多项属性,如植物网格体之间的最小距离、添加植物的密度、以及植物网格体是否可被缩放。

放置

此属性控制植物网格体在关卡中被绘制时将如何进行放置。

实例设置

此属性可调整此实例的行为,不使用派生自内容浏览器中静态网格体的属性。

重应用工具

Reapply Tool

利用重应用工具可选择性地修改已放置在场景中的植物网格体的特定参数。用启用的重应用工具在植物网格体上进行绘制时,在网格体列表中选中的植物网格体将更新,以反映在重应用工具中进行的修改。

设置复选框后,在现有实例上绘制笔刷时将重新应用相应的参数。使用绘制工具时多数设置均相同,然而也存在几点不同:

项目

描述

网格体

在此处输入要使用的静态网格体类型。

绘制

可在此处覆盖将植物网格体添加到关卡时要发生的情况。

放置

可在此处覆盖植物网格体放置在关卡中的方式。

选择工具

Select Tool

选择工具启用后,点击植物网格体的单个实例即可将其选中。按住 Ctrl 键同时点击关卡中的植物网格体即可一次性选中多个植物网格体。

选中网格体后,即可对其执行以下操作。

操作

结果

拖动一根控件轴

选中的实例将随控件移动,根据控件模式进行旋转或缩放。

按住Alt拖动一根控件轴

选中的实例将首先被复制,然后跟随控件进行移动。

Delete键

选中的实例将被删除。

End键

选中的实例将尝试对齐到地面。如最初放置时此设置已启用,实例将对齐法线。

通过诸多 选择 按钮可选择所有植物网格体Actor、选择所有无效植物网格体、或取消选中已选项。

Foliage_Select_Options.png

套索工具

Lasso Tool

利用套索工具可以同时选中大量或少量植物网格体。可使用过滤设置来确保放置在特定对象上的植物网格体不会被选中。要选择植物网格体,按住 鼠标右键 并在场景中移动鼠标即可。要取消选择植物网格体,在绘制时按下 Shift 键即可。拥有选项后,即可切换至常规选择工具,执行植物网格体复制、移动和移除等操作。

Lasso Tool

填充工具

Fill Tool

填充工具能够用选中的植物网格体来覆盖关卡中的整个静态网格体actor。填充工具的功能和绘制工具类似,主要不同在于一次点击即可覆盖植物中的整个actor。在希望被植物所覆盖的静态网格体上按下 鼠标左键 即可使用填充工具。点击鼠标键的次数越多,添加的植物就越多。移除植物的方法是按住 Shift 键,使用 鼠标左键 点击希望移除植物的静态网格体。

如果用填充工具无法移除植物网格体,则需要点击其放置的actor,而非点击添加的植物网格体。

剔除

因为植物实例在单次绘制调用中被渲染为群集,所以每个群集将基于遮挡被渲染(或不被渲染)。如在 结束剔除距离 参数中设置了一个值,则超过此距离的群集也将被剔除。然而,此项将导致网格体分组因整个群集超出范围而突然消失。

添加一个 开始剔除距离 参数并正确设置材质即可解决此问题。 在顶点着色器中将计算一个逐实例淡化因子,其在开始距离处为1.0、结束距离处为0.0。 可使用 PerInstanceFadeAmount 节点在材质中进行访问。 如将此连接到一个不透明度或遮罩值,则可将其用于淡化一定距离之外的距离(在其到达 剔除距离结束 并从渲染中被移除之前)。

下方的材质范例将材质遮罩与淡化因子相乘,以弱化植物网格体的叶片,直到其完全消失。

Culling Material Example

LOD

植物上支持静态网格体LOD。但有几个注意事项:

  • 须确保静态网格体在元素排列中只拥有一个条目(在LOD0下可见)。

  • 注意:光照贴图和阴影贴图在所有LOD等级之间共享,因此所有LOD需使用相同的展开。

  • 当前实例的整个群集将同时修改LOD。未来的版本中可能添加逐实例基于距离的淡化。

光照

每个个体网格体实例皆有由Lightmass生成的阴影贴图和/或光照贴图,他们将在每个预计算的批次中平铺在一起。为使预计算光照在实例化植物上拥有良好效果,应勾选静态网格体上的几项设置。为实例化网格体生成阴影贴图时Lightmass的宽容度较低;如果设置不正确,在构建灯光后可能出现黑色的网格体。

  • 光照贴图坐标索引 - 此项必须设为拥有独有UV展开的有效UV通道。静态网格体编辑器的 生成独有UV 功能(可从 窗口 菜单中访问)即可迅速生成一个独有展开。

  • 光照贴图分辨率 - 此项必须是一个足够小的数字,以便单一群集中实例的所有阴影贴图(默认为100)平铺在一起,而不会超过最大纹理分辨率(4094x4096)。

植物可延展性

植物静态网格体可使用可延展性系统 来增加或减少当前被渲染到屏幕上的植物实例数量。要将此功能添加到项目,须执行以下操作:

为使用“植物绘制”模式,关卡必须包含启用了碰撞的地形地貌或静态网格体。

  1. 在内容浏览器中点击右键。在 创建高级资源(Create Advanced Asset) 部分中展开 杂项(Miscellaneous) 部分,并选择 植物类型(Foliage Type) 选项。

  2. 为植物类型输入一个命名(此例中我们使用的是 FT_Box),然后双击FT_Box植物类型将其打开。

  3. FT_Box打开后,展开 网格体(Mesh)可延展性(Scalability) 部分。

  4. 内容浏览器 中选中一个静态网格体(在此例中我们使用的是初学者内容包中的 Shape_Cube)。在FT_Box植物类型中,在 网格体 部分下将 Shape_Cube 从内容浏览器拖至 网格体 选项。

  5. 在FT_Box植物类型的 可延展性 部分中,点击 启用密度缩放(Enable Density Scaling) 旁的小框,使可延展性系统能够访问此静态网格体。

    只应为不带碰撞的细节植物(如小石块和灌木丛)启用 启用密度缩放(Enable Density Scaling) 选项。就带碰撞的植物类型(如树木)而言,此项应被 禁用,因为被移除实例的碰撞仍将留存在游戏中。

  6. 模式 面板中选择 植物工具。将FT_Box植物类型选中,并从内容浏览器拖至 将植物放置于此处 区域。

  7. 选中放置在植物类型列表中的FT_Box植物类型。在视口中长按 鼠标左键 开始将FT_Box植物类型网格体绘制到一个表面上。

  8. 工具条 上点击 运行 来启动关卡。导航至已添加植物的位置。

    Foliage_Scalability_07.png

  9. 按下 重音符 键(`)打开 控制台 并输入以下命令(后接0到1之间的一个小数)即可控制植物渲染的密度。

    • foliage.DensityScale

    调整“植物密度缩放”设置时,可以看到结果不会在任何编辑器视口中实时更新。要看到植物密度实时更新的唯一方法是项目处于PIE、模拟或Standalone游戏模式中时输入命令。

如下所示,植物密度在foliage.DensityScale设置设为0.1、0.2、0.3、0.4、0.5、0.6、0.7、0.8、0.9、1.0时会发生变化。

拖动滑条即可在0.1到1.0之间调整foliage.DensityScale设置。