查看: 1452|回复: 0

[粒子] 粒子系统细节级别(LOD)

[复制链接]

906

主题

954

帖子

3950

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3950

最佳新人

发表于 2019-3-29 14:21:27 | 显示全部楼层 |阅读模式
本页面涉及到:
·   级联 LOD 功能键
·   在粒子系统中创建 LOD 层
·   LOD 方法和距离设置

细节级别(LOD)是特效师的福音,利用它可以创建出根据玩家距离高效利用屏幕空间的粒子特效。例如篝火粒子系统,可能包含以下几种发射器:
火焰内焰
火焰外焰
内焰辉光
火星和灰烬
一层或多层烟雾

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

FireEffect_Close.png

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

FireEffect_Distant.jpg

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

级联 LOD 功能键

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

级联 LOD 功能键

1220190329135719.jpg

每个功能键详解如下:

按钮 名称 描述
Cascade_Toolbar_RegenLOD_Duplicating.jpg Regenerate Lowest LOD Duplicating Highest Button 按下 Regenerate Lowest LOD Duplicating Highest 按钮后,粒子系统将移除所有现有的较低 LOD 层并重新生成一个最低的 LOD。此 LOD 为最高层的副本。
Cascade_Toolbar_RegenLOD.jpg Regen Lowest LOD Button 按下 Regen Lowest LOD 按钮后,粒子系统将移除所有现有 LOD 层并重新生成一个最低的 LOD。
Cascade_Toolbar_LowestLOD.jpg Jump to Lowest LOD Button 按下 Jump to Lowest LOD 按钮后,系统将被设为最低的可用静态 LOD。
Cascade_Toolbar_LowerLOD.jpg Jump to Lower LOD Button 按下 Jump Lower to LOD 按钮后,系统将设为比当前 LOD 设置低一层的可用静态 LOD。
Cascade_Toolbar_AddLOD_Before.jpg Add LOD before current Button 按下 Add LOD before current 按钮后,系统将在当前加载的 LOD 前插入一个新的静态 LOD。
Cascade_Toolbar_CurrentLOD.jpg Current LOD Current LOD 信息框显示当前载入的 LOD,以及粒子系统中存在的 LOD 数量。
Cascade_Toolbar_AddLOD_After.jpg Add LOD after current Button 按下 Add LOD after current 按钮后,系统将在当前加载的 LOD 后插入一个新的静态 LOD。
Cascade_Toolbar_HigherLOD.jpg Jump to Higher LOD 按钮 按下 Jump to Higher LOD 按钮后,系统将设为比当前 LOD 设置高一层的可用静态 LOD。
Cascade_Toolbar_HighestLOD.jpg Jump to Highest LOD 按钮 按下 Jump to Highest LOD 按钮后,系统将被设为最高的可用静态 LOD。
Cascade_Toolbar_DeleteLOD.jpg Delete LOD 按钮 按下 Delete LOD 按钮将从粒子系统中删除当前选中的静态 LOD 层。


在粒子系统中创建 LOD 层

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

·    创建期望的整体效果。此为最高的 LOD 层。
·    接下来创建最低的 LOD 层。
·    添加两者之间的 LOD 层,创建从最高质量到最低质量的平顺过渡。

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

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

ImageTest_Tile.jpg

我们来设置最高的 LOD 层。

最高 LOD 层

HighestLOD.jpg

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

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

在最高 LOD 中查看的模块 在最低 LOD 中查看的模块
HighestLevelModules.jpg LowestLevelModules.jpg


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

可用选项如下:

选项 描述
Duplicate from Higher 复制更高一层 LOD 设置,启用模块编辑。
Share from Higher 分享更高一层 LOD 设置,启用模块编辑。这意味着编辑一个 LOD 将以相同方式自动编辑另一个 LOD。
Duplicate from Highest 复制最高 LOD 设置,启用模块编辑。


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

最低 LOD 层

LowestLOD.jpg

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

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

LOD 第一层

LOD_33.jpg

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

LOD 第二层

LOD_66.jpg

LOD 方法和距离设置

粒子系统的游戏内操作由两个模式中的一个完成。每个粒子系统中名为 LODMethod 的列举提供确定此模式的方法。该模式交替控制 LOD 距离的处理方法。

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

LODDistances 属性窗口

LODsettings.jpg

在此例中,发射器来自摄像机的 [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
方法 描述
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 是否接受光照。



关注galaxixv,官方微信公众号。
GALAXIX UE4 讨论学习群 140439020
UE4精英学习群  12762592
UNITY学习群   194092348
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


快速回复 返回顶部 返回列表