粒子系统细节级别(LOD)

粒子的 GPU 模拟,可允许成百上千的粒子同时存在。

Choose your operating system:

Windows

macOS

Linux

细节级别(LOD)是特效师的福音,利用它可以创建出根据玩家距离高效利用屏幕空间的粒子特效。例如篝火粒子系统,可能包含以下几种发射器:

  • 火焰内焰

  • 火焰外焰

  • 内焰辉光

  • 火星和灰烬

  • 一层或多层烟雾

近距离观察时,系统的外观如下图所示:

FireEffect_Close.png

而当玩家走远时,系统占用屏幕的空间变少,如下图所示:

FireEffect_Distant.png

在这种情况下,粒子系统的一些方面将会变得十分小(小于一个像素)而无需进行渲染,如灰烬。然而,这些粒子仍然被计算和处理。LOD 就可以大显身手了。它可使粒子系统基于距离进行简化,(在玩家距离过远而欣赏不到特效时)将系统中的发射器和模块将设置关闭,或完全关闭。

该文档讲述粒子系统中细节层级(LODs)的创建以及在游戏中的实际用法。

级联 LOD 功能键

以下部分讲述级联工具栏中的 LOD 功能键。

级联 LOD 功能键

Cascade_Toolbar.png

每个功能键详解如下:

按钮

名称

描述

Cascade_Toolbar_RegenLOD_Duplicating.png

Regenerate Lowest LOD Duplicating Highest Button

按下 Regenerate Lowest LOD Duplicating Highest 按钮后,粒子系统将移除所有现有的较低 LOD 层并重新生成一个最低的 LOD。此 LOD 为最高层的副本。

Cascade_Toolbar_RegenLOD.png

Regen Lowest LOD Button

按下 Regen Lowest LOD 按钮后,粒子系统将移除所有现有 LOD 层并重新生成一个最低的 LOD。

Cascade_Toolbar_LowestLOD.png

Jump to Lowest LOD Button

按下 Jump to Lowest LOD 按钮后,系统将被设为最低的可用静态 LOD。

Cascade_Toolbar_LowerLOD.png

Jump to Lower LOD Button

按下 Jump Lower to LOD 按钮后,系统将设为比当前 LOD 设置低一层的可用静态 LOD。

Cascade_Toolbar_AddLOD_Before.png

Add LOD before current Button

按下 Add LOD before current 按钮后,系统将在当前加载的 LOD 前插入一个新的静态 LOD。

Cascade_Toolbar_CurrentLOD.png

Current LOD

Current LOD 信息框显示当前载入的 LOD,以及粒子系统中存在的 LOD 数量。

Cascade_Toolbar_AddLOD_After.png

Add LOD after current Button

按下 Add LOD after current 按钮后,系统将在当前加载的 LOD 后插入一个新的静态 LOD。

Cascade_Toolbar_HigherLOD.png

Jump to Higher LOD 按钮

按下 Jump to Higher LOD 按钮后,系统将设为比当前 LOD 设置高一层的可用静态 LOD。

Cascade_Toolbar_HighestLOD.png

Jump to Highest LOD 按钮

按下 Jump to Highest LOD 按钮后,系统将被设为最高的可用静态 LOD。

Cascade_Toolbar_DeleteLOD.png

Delete LOD 按钮

按下 Delete LOD 按钮将从粒子系统中删除当前选中的静态 LOD 层。

在粒子系统中创建 LOD 层

以下部分将讲述 LOD 全支持粒子系统创建的常规设计流程。流程的步骤详解如下:

  • 创建期望的整体效果。此为最高的 LOD 层。

  • 接下来创建最低的 LOD 层。

  • 添加两者之间的 LOD 层,创建从最高质量到最低质量的平顺过渡。

只能在编辑最高 LOD 层时添加/删除模块。

在此例中我们使用单个 SubUV 发射器。它设置的方式是 SubUV 坐标 0 显示数字 1,坐标 1 显示数字 2,以此类推。应用的纹理外观如下:

ImageTest_Tile.png

我们来设置最高的 LOD 层。

最高 LOD 层

HighestLOD.png

当特效师打算对粒子系统进行 LOD 开发时,他们应该选择工具栏中的 Regenerate Lowest LOD 。这将使系统重新生成最低的 LOD 层。(它将同时删除临时创建的静态 LOD 层。)在当前,它将以较低的生成率复制最高 LOD 层。

选择最低的 LOD 层后,进行数值调整获得需要的外观。需要注意的是所有模块在静态 LOD 层中均默认标为 un-editable 。模块中显示的大理石花纹背景为此特征。

在最高 LOD 中查看的模块

在最低 LOD 中查看的模块

HighestLevelModules.png

LowestLevelModules.png

必须将其启用方可在静态 LOD 层中对模块进行编辑。在模块中 单击右键 并从快捷菜单中选择 Duplicate from Higher ,完成此操作。

可用选项如下:

选项

描述

Duplicate from Higher

复制更高一层 LOD 设置,启用模块编辑。

Share from Higher

分享更高一层 LOD 设置,启用模块编辑。这意味着编辑一个 LOD 将以相同方式自动编辑另一个 LOD。

Duplicate from Highest

复制最高 LOD 设置,启用模块编辑。

在此例中,我们已启用 SubImage Index 模块的编辑并将索引设为 3.发射器中的结果显示为黄色的 4 ,如下图所示:

最低 LOD 层

LowestLOD.png

注意:生成率被自动设为最高 LOD 层的 10%。

下一步,按下 Add LOD before current 按钮(假定此时你仍在查看最低 LOD 层),在最高和最低之间添加一个静态 LOD。已启用 SubImage Index 模块并将索引设为 1。发射器中的结果显示为蓝色的 2 ,如下图所示:

LOD 第一层

LOD_33.png

按下 Add LOD after current 按钮启用 SubImage index 模块,在第一个静态 LOD 和最低 LOD 之间添加一个静态 LOD。SubImage Index 被设为 2,导致发射器显示一个绿色的 3 ,如下图所示:

LOD 第二层

LOD_66.png

LOD 方法和距离设置

有多种方法可以让你在游戏内控制粒子系统的LOD。每个粒子系统都有一个名为 LODMethod 的枚举,能用于确定采用何种模式,进而控制LOD距离的处理方法。

下图显示范例粒子系统的属性窗口:

LODDistances 属性窗口

LODsettings.png

在此例中,发射器来自摄像机的 [0..1249] 单位时,使用 LOD 0(最高)。LOD 1 来自 [1250..1874],LOD 2 来自 [1875..2499],距离大于 2500 个单位时为 LOD 3。

设为自动模式的每个 ParticleSystemComponent 在运行时将执行 LOD 距离确认,LODDistanceCheckTime 用于设置此操作的执行频率(以秒为单位)。在此例中,关卡中的每个粒子系统每四分之一秒执行一次距离确认。

属性

描述

LOD

LOD Distance Check Time

确定系统执行一次距离检测的时间频率(以秒为单位),以明确使用的 LOD 级别。(仅在 LODMethod 设为 Automatic 时使用)。

LOD Method

此枚举说明系统选择适当 LOD 级别时所使用的方法。有多种方法可用:

方法

描述

Automatic

基于 LOD 距离和检测时间自动设置 LOD 级别。

DirectSet

游戏将直接为系统设置使用的 LOD 级别。

ActivateAutomatic

特效生成时 LOD 即被定义,基于 LOD 中定义的距离参数。

LODDistances

确定使用 LOD 级别的距离阵列。(仅在 LODMethod 设为 Automatic 时使用)。这些数值将提供选择 LOD 级别的推荐最小距离。例如,3 种 LOD 级别的粒子系统:

LODDistanceIndex

范围

所选 LOD 级别

0

0.0

0.0 - 2499.9

0 (最大值)

1

2500.0

2500.0 - 4999.9

1

2

5000.0

5000.0 - 无限

2

LODSettings

一种结构阵列,决定每个 LOD 使用的特定设置。当前使用指定 LOD 时,唯一的设置 Lit 用于控制 ParticleSystem 是否接受光照。

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消