Choose your operating system:
Windows
macOS
Linux
细节级别(LOD)是特效师的福音,利用它可以创建出根据玩家距离高效利用屏幕空间的粒子特效。例如篝火粒子系统,可能包含以下几种发射器:
火焰内焰
火焰外焰
内焰辉光
火星和灰烬
一层或多层烟雾
近距离观察时,系统的外观如下图所示:
而当玩家走远时,系统占用屏幕的空间变少,如下图所示:
在这种情况下,粒子系统的一些方面将会变得十分小(小于一个像素)而无需进行渲染,如灰烬。然而,这些粒子仍然被计算和处理。LOD 就可以大显身手了。它可使粒子系统基于距离进行简化,(在玩家距离过远而欣赏不到特效时)将系统中的发射器和模块将设置关闭,或完全关闭。
该文档讲述粒子系统中细节层级(LODs)的创建以及在游戏中的实际用法。
级联 LOD 功能键
以下部分讲述级联工具栏中的 LOD 功能键。
级联 LOD 功能键
每个功能键详解如下:
按钮 |
名称 |
描述 |
---|---|---|
|
Regenerate Lowest LOD Duplicating Highest Button |
按下 Regenerate Lowest LOD Duplicating Highest 按钮后,粒子系统将移除所有现有的较低 LOD 层并重新生成一个最低的 LOD。此 LOD 为最高层的副本。 |
|
Regen Lowest LOD Button |
按下 Regen Lowest LOD 按钮后,粒子系统将移除所有现有 LOD 层并重新生成一个最低的 LOD。 |
|
Jump to Lowest LOD Button |
按下 Jump to Lowest LOD 按钮后,系统将被设为最低的可用静态 LOD。 |
|
Jump to Lower LOD Button |
按下 Jump Lower to LOD 按钮后,系统将设为比当前 LOD 设置低一层的可用静态 LOD。 |
|
Add LOD before current Button |
按下 Add LOD before current 按钮后,系统将在当前加载的 LOD 前插入一个新的静态 LOD。 |
|
Current LOD |
Current LOD 信息框显示当前载入的 LOD,以及粒子系统中存在的 LOD 数量。 |
|
Add LOD after current Button |
按下 Add LOD after current 按钮后,系统将在当前加载的 LOD 后插入一个新的静态 LOD。 |
|
Jump to Higher LOD 按钮 |
按下 Jump to Higher LOD 按钮后,系统将设为比当前 LOD 设置高一层的可用静态 LOD。 |
|
Jump to Highest LOD 按钮 |
按下 Jump to Highest LOD 按钮后,系统将被设为最高的可用静态 LOD。 |
|
Delete LOD 按钮 |
按下 Delete LOD 按钮将从粒子系统中删除当前选中的静态 LOD 层。 |
在粒子系统中创建 LOD 层
以下部分将讲述 LOD 全支持粒子系统创建的常规设计流程。流程的步骤详解如下:
创建期望的整体效果。此为最高的 LOD 层。
接下来创建最低的 LOD 层。
添加两者之间的 LOD 层,创建从最高质量到最低质量的平顺过渡。
只能在编辑最高 LOD 层时添加/删除模块。
在此例中我们使用单个 SubUV 发射器。它设置的方式是 SubUV 坐标 0 显示数字 1,坐标 1 显示数字 2,以此类推。应用的纹理外观如下:
我们来设置最高的 LOD 层。
最高 LOD 层
当特效师打算对粒子系统进行 LOD 开发时,他们应该选择工具栏中的 Regenerate Lowest LOD。这将使系统重新生成最低的 LOD 层。(它将同时删除临时创建的静态 LOD 层。)在当前,它将以较低的生成率复制最高 LOD 层。
选择最低的 LOD 层后,进行数值调整获得需要的外观。需要注意的是所有模块在静态 LOD 层中均默认标为 un-editable。模块中显示的大理石花纹背景为此特征。
在最高 LOD 中查看的模块 |
在最低 LOD 中查看的模块 |
---|---|
|
|
必须将其启用方可在静态 LOD 层中对模块进行编辑。在模块中 单击右键 并从快捷菜单中选择 Duplicate from Higher,完成此操作。
可用选项如下:
选项 |
描述 |
---|---|
Duplicate from Higher |
复制更高一层 LOD 设置,启用模块编辑。 |
Share from Higher |
分享更高一层 LOD 设置,启用模块编辑。这意味着编辑一个 LOD 将以相同方式自动编辑另一个 LOD。 |
Duplicate from Highest |
复制最高 LOD 设置,启用模块编辑。 |
在此例中,我们已启用 SubImage Index 模块的编辑并将索引设为 3.发射器中的结果显示为黄色的 4,如下图所示:
最低 LOD 层
注意:生成率被自动设为最高 LOD 层的 10%。
下一步,按下 Add LOD before current 按钮(假定此时你仍在查看最低 LOD 层),在最高和最低之间添加一个静态 LOD。已启用 SubImage Index 模块并将索引设为 1。发射器中的结果显示为蓝色的 2,如下图所示:
LOD 第一层
按下 Add LOD after current 按钮启用 SubImage index 模块,在第一个静态 LOD 和最低 LOD 之间添加一个静态 LOD。SubImage Index 被设为 2,导致发射器显示一个绿色的 3,如下图所示:
LOD 第二层
LOD 方法和距离设置
有多种方法可以让你在游戏内控制粒子系统的LOD。每个粒子系统都有一个名为 LODMethod 的枚举,能用于确定采用何种模式,进而控制LOD距离的处理方法。
下图显示范例粒子系统的属性窗口:
LODDistances 属性窗口
在此例中,发射器来自摄像机的 [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 级别时所使用的方法。有多种方法可用:
|
||||||||||||||||
LODDistances |
确定使用 LOD 级别的距离阵列。(仅在 LODMethod 设为 Automatic 时使用)。这些数值将提供选择 LOD 级别的推荐最小距离。例如,3 种 LOD 级别的粒子系统:
|
||||||||||||||||
LODSettings |
一种结构阵列,决定每个 LOD 使用的特定设置。当前使用指定 LOD 时,唯一的设置 Lit 用于控制 ParticleSystem 是否接受光照。 |